2016-06-15 16 views
2

質問: PIDが存在するかどうかをチェックし、その結果をbashのIF文内で使用しますか?私は Bash:さらにロジックがあるPIDが存在するかどうかを確認してください


if [ "$(kill -0 $pid)" -eq 0 ]; then 
echo "Running" 
else 
echo "Not Running" 
fi 

どちらもこれらの

if [ "$(ps -p $pid)" -eq 0 ]; then 
echo "Running" 
else 
echo "Not Running" 
fi 
を試してみた

物事を評価正しくに関係なく、私はあなたがいるかどうかを確認するにはどうすればよいSTDOUT/STDER

答えて

3

をリダイレクトする方法PIDが存在し、if文内で結果を使用しますか?

あなたは変数に出力をキャプチャして、終了ステータスを確認できます。

output=$(ps -p "$pid") 
if [ "$?" -eq 0 ]; then 
    echo "Found" 
    echo "$output" 
fi 

だけ$?は、コマンドを実行するたびにリセット取得するので、何か以下の文句を言わない仕事のようにしていることを覚えておいてください。

output=$(ps -p "$pid") 
echo "$output" 
# Now $? will be refering to the exit status of echo 
if [ "$?" -eq 0 ]; then 
    echo "Found" 
fi 

1つはまたif文で一緒にすべてを固執することができます:

1

ホストOSとは何ですか?

あなたは/procのを持っている場合、これはあなたのために働く可能性があります

if [ -d "/proc/$pid" ]; then 
     echo "Running" 
    else 
     echo "Not running" 
    fi 
+0

対象Centos 6.5-6.7 – stackoverflow

2

を確認したいのpidを渡すことによって、それが動的にする:

#!/usr/local/bin/bash 

if ps -p $1 > /dev/null; 
then 
echo "running" 
else 
echo "not running" 
fi 

例が実行されます。

関連する問題