我正在运行一个bash脚本作为后台作业。 bash脚本调用一个耗时的可执行文件。 如果我没有错,bash脚本的运行是父进程,可执行文件的运行是subprocess。
(1)当我查看top的输出时,只显示了可执行文件正在运行的subprocess,而不是显示正在运行的父进程。 只是想知道为什么不显示两个? 以及如何显示两者?
(2)现在我想通过杀死作为后台工作的父进程来停止整个运行
kill -9 $(jobs -p)
terminal显示bash脚本的运行被终止。 但可执行文件的运行仍然挂在顶部的输出。 我只是想知道如何杀死父母和孩子的过程?
感谢致敬!
使用负PID来杀死进程组。 尽量避免-9
除非绝对必要。
bash过程应该仍然显示在进程列表中,除了在这种情况下它通常不会做任何事情,它可能会在“顶部”列表的最底部。 尝试ps或更好的pstree来分析你的情况。