特定の名前の特定のファイルが実行されていることを確認できるかどうか疑問に思います。私はファイル名の代わりにPIDが表示されるさまざまな状況を見ましたが、むしろファイル名パスを好みました。たとえば、test.phpというファイルがPHPコマンドを介して実行されているとします(この場合、ファイルは無限ループであるため、ファイルが無限に実行されるとします)。この特定のファイルが現在実行されていることを知らせるために作成できるコマンドはありますか?これが不可能な場合は、現在実行中のすべてのPHPファイルを表示できますか?現在、Ubunutu 18.04 LTSを使用しています。
答え1
努力するpgrep
:
pgrep -f test.php
すると、コマンドのPIDが出力されます。
選択する:
ps aux | grep '[t]est\.php'
これにより対応するラインが出力されますps aux
。
答え2
もう一つのオプションはkillallを使うことです。
killall -0 -q test.php && echo test.php is running
コマンド名にもかかわらず、プロセスは終了しません。
答え3
#!/bin/sh
processname='login'
if [ "$(pgrep $processname)x" != "x" ]
then
echo $processname is running
else
echo $processname is NOT running
fi
戻り値の代わりに終了ステータスを使用し、より簡潔な構文を使用する代替バージョン
#!/bin/sh
processname='login'
pgrep $processname > /dev/null
test $? -eq 0 && echo "$processname is running" || echo "$processname is NOT running"