2024-03-28 14:13:46 发布
网友
我使用以下命令在linux上并行运行两个python脚本
python program01.py & python program02.py
当我使用“ctrl+c”这样的键盘快捷键来停止它们时,它只关闭命令中最后一个程序(例如,这里是“program02.py”),而另一个则保持打开/运行状态。
我需要知道如何使用键盘命令一次关闭所有这些命令,因为有时我需要所有这些命令保持运行,而此时只有键盘命令可以使用。
没有这样的捷径,但你可以做一些:
trap 'kill -INT $(jobs -p) &> /dev/null' INT
在您的.bashrc中,命令行上的Ctrl+C将中断所有后台作业。在
.bashrc
这意味着您可以按Ctrl+C来终止前台进程,然后再按Ctrl+C来终止任何后台进程。在
或者
将允许您使用Ctrl+B来终止所有后台作业,这样您就不会在疯狂地按Ctrl+C来终止前台进程时意外地这么做。在
当您运行结尾为&的程序时,它在后台运行。要终止所有后台作业,请使用jobs -p | xargs kill -9命令。这没有bash的捷径。在
&
jobs -p | xargs kill -9
在这种情况下,您可以根据需要运行命令:
python program01.py & python program02.py &
这是一个启动虚拟线程的示例代码,当虚拟线程检测到任何键盘输入时,它将跳出任何循环。我发现这是在control-C不工作时停止程序的可靠方法,但我相信有更好的解决方案。在
import thread def input_thread(L): raw_input() L.append(None) dummykeypress = [] thread.start_new_thread(input_thread, (dummykeypress,)) while True: if dummykeypress: break # or exit() to kill entire program, etc
没有这样的捷径,但你可以做一些:
在您的
.bashrc
中,命令行上的Ctrl+C将中断所有后台作业。在这意味着您可以按Ctrl+C来终止前台进程,然后再按Ctrl+C来终止任何后台进程。在
或者
^{pr2}$将允许您使用Ctrl+B来终止所有后台作业,这样您就不会在疯狂地按Ctrl+C来终止前台进程时意外地这么做。在
当您运行结尾为
&
的程序时,它在后台运行。要终止所有后台作业,请使用jobs -p | xargs kill -9
命令。这没有bash的捷径。在在这种情况下,您可以根据需要运行命令:
这是一个启动虚拟线程的示例代码,当虚拟线程检测到任何键盘输入时,它将跳出任何循环。我发现这是在control-C不工作时停止程序的可靠方法,但我相信有更好的解决方案。在
相关问题 更多 >
编程相关推荐