特定の名前の特定のファイルが実行されていることを確認してください。

特定の名前の特定のファイルが実行されていることを確認してください。

特定の名前の特定のファイルが実行されていることを確認できるかどうか疑問に思います。私はファイル名の代わりに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"

関連情報