我正在运行多个以分号分隔的 bash 命令:
% long-running-command-I-want ; another-command-I-dont
long-running-command-I-want
仍在运行;当然还没有。pid
我another-command-I-dont
想先发制人地杀死/取消/阻止执行,而不another-command-I-dont
杀死long-running-command-I-want
我等待已久的。我可以这样做吗?如果可以,怎么做?
答案1
bash
如果您运行另一个 shell,则可以找出正在运行要继续的程序的 PID 。如果是bashPID
,则使用以下命令发送中断信号:
kill -2 bashPID
这将停止其余命令行的执行。
您也可以在原始 shell 中输入Ctrl-z以暂时在后台暂停正在运行的程序。这将继续执行其余的命令行,这些命令行将被中断信号刷新。然后,您可以使用fg
或恢复正在运行的程序bg
,具体取决于您希望它在前台还是后台继续运行。