1

「親」Bash スクリプト

bash Child &
wait
sleep 5; echo "Main end" >>log.txt

「子」スクリプト:

trap 'echo "Child end" >>log.txt;' ABRT
sleep 100
echo "Child end" >>log.txt

実行: bash 親 &

これらのスクリプトを変更して、「kill -ABRT」で Child が log.txt のトレースで終了するようにするにはどうすればよいですか? そのまま、Child はそのようなシグナルを無視します。最初の行 (トラップ) が削除された場合は実行されますが、「kill -ABRT」の実行時に log.txt にトレースが残りません。

4

1 に答える 1

1

質問が通じるかどうかわかりませんが、PID で操作できませんか? variable から取得/印刷できます$!

bash child1 &; echo $!;

そして、ただkill -ABRT that_pid

または、特定の子スクリプトを実行しているプロセスを強制終了しますか?

于 2013-09-06T11:54:22.840 に答える