1

そのプロセスを開始しない場合、実行中のプロセスをチェックするJavaプログラムを開発しています。私のコンテキストでは、このような .sh ファイルを実行しています。

#!/bin/sh
echo "Hello World..."
cnt=`ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l`
if [ $cnt = 3 ] 
then
        echo "Services for Pigeon are already running..."
else
        echo "Starting Services for Pigeon..."
        echo `java -jar clientApplication.jar`
fi

しかし、それは機能していません。どうしたの?

4

4 に答える 4

0

私はわかりません。これを試して

cnt=$(`ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l`)
if[$cnt -eq 3]; then

これを試してみてください

于 2013-01-24T12:23:57.343 に答える
0
  1. 同等性チェックは==、=は割り当てである必要があります
  2. `expr`ではなく$(expr)を使用します
  3. if(expr)not if [expr]
  4. Java行をエコーするかどうかわからない場合は、印刷するように指示してjarを開始することはありません。あなたがそれを始めたいと言ったので、私はエコーを取り除きました。

したがって、これを試してみると、うまくいきます:

    #!/ bin / sh
    echo "Hello World..."
    cnt = $(ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l)
    if($ cnt == 3)
    それから
        echo"Pigeonのサービスはすでに実行されています..."
    そうしないと
        echo"Pigeonのサービスを開始しています..."
        java -jar clientApplication.jar
    fi
于 2013-01-24T14:49:56.527 に答える
0

テスト式を使用すると機能します。お役に立てれば !!

echo "Hello World"
cnt=`ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l`
if(test $cnt -eq 3) ;
then
    echo "Services for Pigeon are already running..."
else
    echo "Starting Services for Pigeon..."
    echo `java -jar clientApplication.jar`
fi
于 2013-01-24T12:54:41.343 に答える