如何在同一终端上启动 3 个进程,然后轻松退出所有 3 个进程?

如何在同一终端上启动 3 个进程,然后轻松退出所有 3 个进程?

我可以轻松地在 3 个不同的终端上启动 3 个进程,然后按 杀死每个进程Ctrl+C。现在,有什么方法可以同时启动所有 3 个进程,然后同样轻松地完成它们吗?想法:

  1. 如果我可以启动 3 个进程,让它们在同一个终端上运行,并Ctrl+C杀死所有 3 个进程,那就行了。

  2. 如果我可以创建两个脚本,init.sh并且kill.sh这将启动/终止 3 个进程,那也可以。

这两者都有效,因为它们很容易。必须在后台生成一个进程,然后找到它的 pid,然后复制它,然后用另一个命令杀死它,这并不容易。

答案1

使用 bash 的作业控制:

$ sleep 10m & sleep 11m & sleep 12m &
[1] 1821
[2] 1822
[3] 1823
$ jobs
[1]   Running                 sleep 10m &
[2]-  Running                 sleep 11m &
[3]+  Running                 sleep 12m &
$ kill %1 %2 %3
$ jobs
[1]   Terminated: 15          sleep 10m
[2]-  Terminated: 15          sleep 11m
[3]+  Terminated: 15          sleep 12m

在 bash 中,运行command &会将其发送到后台。这样,您可以在同一个 shell 中启动多个命令,并在后台运行。内置kill函数可用于终止这些后台作业。第一个(最旧的)活动工作是%1,下一个是%2等等。另请参阅:杀死所有后台作业

相关内容