0

init.dスクリプトを作成していて、戻り値が1より大きいかどうかをテストしようとしています。「より大きい」の正しい構文は何でしょうか。

mc_status() {
        if ps ax | grep -ci 'CanaryMod.jar' > 0
        then
                echo "$SERVICE is running."
        else
                echo "$SERVICE is not running."
        fi
}
4

1 に答える 1

1

私の回想から、initスクリプトはshシェルで書かれています。多くのシェルスクリプトは、pidファイル(通常は/ var / runにあります)を使用して、サービスが実行されているかどうかを確認します。あなたの場合、psにあるプロセスが検証に使用されます。

ps / grepが数値ではなく文字のセットを返すか、何も返さないため、実行しているテストは多少正しくありません。次のことを試してください。

mc_status() {
        if [ ! -z "`ps ax | grep -ci 'CanaryMod.jar'`" ]; then
                echo "$SERVICE is running."
        else
                echo "$SERVICE is not running."
        fi
}
于 2011-04-30T23:58:27.010 に答える