some_process
サーバーでプロセス(と呼ばれていると仮定)が実行されているかどうかを確認しようとしています。ある場合は1をエコーし、それ以外の場合は0をエコーします。
これは私が使用しているコマンドですが、部分的にしか機能しません(詳細は以下を参照)。スクリプトは1行で記述する必要があることに注意してください。
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
注:[s]
ではsome_proces[s]
ないようにすることであるgrep
自分自身を返すから。
some_process
実行中の場合、"1"
エコーされますが、問題ありません。ただし、some_process
が実行されていない場合、何もエコーされません。
ps -Ccmd
して、コマンド名が「cmd」であるプロセスを検索できますgrep
。これにより、を完全に排除できます。ps
一致するプロセスが見つからない場合、終了コードをゼロ以外の値に設定します。