1. ホーム
  2. バッシュ

[解決済み】プロセスID(PID)が存在するかどうかを確認する方法

2022-04-06 19:49:15

質問

bashスクリプトで、以下のようなことをしたい(疑似コードで)。

if [ a process exists with $PID ]; then

    kill $PID 

fi

条件文の表現は何が適切か?

どのように解決するのですか?

プロセスの存在を確認するには

kill -0 $pid

しかし、ちょうど アンウィンドさんのコメント というように、どのような場合でも終了させたいのであれば、単に

kill $pid

そうでない場合はレースコンディションが発生し、最初の kill -0 .

のテキスト出力を無視したい場合は kill で、終了コードに基づいて何かを行うには、次のようにします。

if ! kill $pid > /dev/null 2>&1; then
    echo "Could not send SIGTERM to process $pid" >&2
fi