我有一个脚本可以按顺序调用很多程序。我怎样才能一劳永逸地终止这个脚本?我知道我可以单击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 个步骤就可以正常工作。