5
私はフォアグラウンドで実行中の子プロセスを持っており、その父親はすでに終了しています。親がすでに終了していると、それはすぐに私たちは、次のスクリプトを使用することができます。この現象を再現する代わりに、元の親PID子プロセスがバックグラウンドで起動され、親タスクがすでに終了している場合の親プロセスの認識方法
linux$cat /proc/6267/stat
6267 (test3.sh) S 1 6265 ......
# ^
# |
# I expected to get the origin parent pid but I get 1
の1を表示する場合
proc/$pid/stat
ファイルには、任意のより多くの親PIDが含まれていません
test2.sh
#!/bin/sh
echo "test2=$$"
./test3.sh &
test3.sh
#!/bin/sh
echo "test3=$$"
sleep 1000
実行:
linux$ ./test2.sh
test2=6318
test3=6319
linux$ ps aux | grep test
6319 root 1484 S {test3.sh} /bin/sh ./test3.sh
linux$ cat /proc/6319/stat
6319 (test3.sh) S 1 6318 2138 34816 6.......
はい、孤立したプロセスは 'init'(" pid '1')によって"採用 "されます。これは設計によるものであり、私の知る限り、親プロセスが終了すると元の親PIDを回復する方法はありません。 –
...もしあなたが一緒に道をくりかえしたら、pidは最終的にリサイクルされるので、その数はあなたが何を意味すると思うかを意味しないかもしれません。 – jthill