0

私はこのようなシェルスクリプトを持っています。

 #!/bin/sh

s=$1
pro=`ps -ef | grep $s | grep -v grep | grep -v test3.sh`
pro1=`ps -ef | grep $s | grep -v grep | grep -v test3.sh | wc -l`

echo $pro
echo $pro1

if [ $pro1 -eq 0 ]
    then
            echo "Service $s is DOWN..."
            echo "Service $s is DOWN..." >> processlogs.txt
            echo "Starting Service $s..."
            echo "Starting Service $s..." >> processlogs.txt
            java -jar clientApplication.jar "$s" &
            exit 0

    else
            echo "Service $s is Running..."
            echo "Service $s is Running..." >> processlogs.txt

   fi

ここで、Javaプログラムに$sの値が必要です。私はこれのために何をすべきですか。ありがとう。

4

2 に答える 2

3

これ...

Process p = Runtime.exec("myExeOrShellScript");
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = r.readLine())!=null) {
  // got the output in 'line' do something with it
}
r.close();

シェルスクリプトでポンプアウトするものはすべてecho、Javaプログラムになります。

于 2013-02-07T04:57:17.897 に答える
1

引数を確認してください:

public static void main(String[] args)
于 2013-02-07T04:53:06.530 に答える