杀死与脚本相关的所有进程

杀死与脚本相关的所有进程

我有一个脚本可以按顺序调用很多程序。我怎样才能一劳永逸地终止这个脚本?我知道我可以单击Ctrl+C来取消某些进程,但终止整个进程需要单击多次(甚至数千或数万)次。如何仅通过一个时钟或一个命令来终止一个脚本? (或多个命令?)

答案1

问题是信号Ctrl + C永远不会到达脚本,而只会到达启动的进程。您可以尝试将手指放在连续C按下时Ctrl + C。最终,信号到达 shell,并且没有启动新程序。

或者,您可以点击Ctrl + Z,然后键入kill %1

这会暂停整个脚本,然后杀死所有内容。

答案2

 1. Get the script name (say abc.sh)
 2. ps -ef | grep "abc.sh" | awk '{print "kill "$2}' > file.sh
 3. /bin/bash file.sh

您可以将选项-9 与kill 一起使用。如果 abc.sh 脚本有一些父进程,这也会杀死父进程。所以建议明智地使用它。大多数情况下,通过以上 3 个步骤就可以正常工作。

相关内容