プロセス ( と呼ばれるsome_process
) がサーバー上で実行されているかどうかを確認しようとしています。実行されている場合は echo 1、そうでない場合は echo 0 です。
これは私が使用しているコマンドですが、部分的にしか機能しません (詳細は下記を参照)。スクリプトを 1 行で記述する必要があることに注意してください。
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
注: in[s]
は、それ自体が返されるのをsome_proces[s]
防ぐためのものですgrep
。
some_process
が実行中の場合は"1"
エコーされますが、これは問題ありません。ただし、some_process
が実行中でない場合は何もエコーされません。
ベストアンサー1
明示的にチェックする必要はありません$?
。次のようにするだけです:
ps aux | grep some_proces[s] > /tmp/test.txt && echo 1 || echo 0
これは echo が失敗しないことに依存していますが、これは必ずしも保証されているわけではありません。これをより確実に記述する方法は次のとおりです。
if ps aux | grep some_proces[s] > /tmp/test.txt; then echo 1; else echo 0; fi