25

PID が実行されている (つまり、存在し、ゾンビ化されていない) かどうかを確認したい。

から行うのは本当に簡単ですが/proc/$PID/stat、もっとポータブルなものが欲しいです。

私が今持っている最高のものは次のとおりです。

( STAT="$(ps -ostat= -p$PID)"; test "$STAT" -a "$STAT" "!=" "Z" )

BSDおよびLinuxで動作するようです。より良い方法はありますか?

4

2 に答える 2

1

うまくいけばPOSIX準拠。ダッシュでテスト済み。使用するには、お気に入りのエディターで保存し、実行可能 ( chmod 755 foo.sh) にして、PID 引数を指定して実行します。

もちろん、必要に応じて調整できます。

#!/bin/sh
pid="$1";
psout=$(ps -o s= -p "$pid");
pattern='[SRDTWX]';

case "$psout" in 
    $pattern) echo "Not a zombie";;
    Z) echo "Zombie found";;
    *) echo "Incorrect input";; 
esac
于 2015-05-21T19:07:39.903 に答える