回答:
最後に実行されたコマンドのPIDは、$!シェル変数にあります。
my-app &
echo $!
/bin/sh -c 'echo $$>/tmp/my.pid && exec program args' &午後二時28分で、11月24日'10 sysfault -
echo $!
my-app & myVar=$! ; fg。fgプロセスを再びフォアグラウンドに戻します。その後、echo $myVar後で印刷することができ、my-appが既に終了していることを確信しています。
取得PID:
#!/bin/bash
my-app &
echo $!
PID変数に保存:
#!/bin/bash
my-app &
export APP_PID=$!
すべてのインスタンスPIDをテキストファイルに保存します。
#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid
出力、エラー、およびPID個別のファイルに保存します。
#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid
echo "my-app PID's: $(cat /tmp/my-app.pid)"
my-app終了し、おそらくさらに悪いことにPIDが後で再利用される場合、ファイルに悪い情報があります。私はこの答えは本当に既存の受け入れ答えに価値の多くを追加するとは思わない
sleep 4 | grep INVALID & export MY_PID=$!; fg; echo $MY_PID returned with $?`
main &PIDを取得する方法ではありませんか?
のようなものを試してください
pidof my_app >> /tmp/my_app.pid