親プロセスをkillすると、子プロセスが残ってします時がある。それではマシーン上に余分なスリープ常態になっている子プロセスが永遠と残ってしまう可能性があるので、親プロセスをkillする前に間違いなく子プロセスをkillしてしまおう。
まず ps axf でどの親プロセスがどの子プロセスを起動しているか一覧で見れる。
#! /bin/sh
pid=${1}
for child in $(ps -o pid,ppid -ax | awk "{ if ( \$2 == $pid ) { print \$1 } }")
do
echo "Killing child process $child because ppid = $pid"
kill $child
done
これで親プロセスのIDを渡したら、子プロセスを見つけ出しkillしてくれる。
参考書: シェル スクリプト

まず ps axf でどの親プロセスがどの子プロセスを起動しているか一覧で見れる。
#! /bin/sh
pid=${1}
for child in $(ps -o pid,ppid -ax | awk "{ if ( \$2 == $pid ) { print \$1 } }")
do
echo "Killing child process $child because ppid = $pid"
kill $child
done
これで親プロセスのIDを渡したら、子プロセスを見つけ出しkillしてくれる。
参考書: シェル スクリプト



コメントする