Mai*_*tor 1 bash process-management
我可以轻松地在 3 个不同的终端上启动 3 个进程,然后按 杀死每个进程Ctrl+C。现在,有没有办法一次启动所有 3 个进程,然后同样轻松地完成它们?想法:
如果我能以这样的方式启动 3 个进程,它们将在同一个终端上运行,并且Ctrl+C会杀死所有 3个进程,那就行了。
如果我可以创建两个脚本,init.sh
并且kill.sh
可以启动/终止 3 个进程,那也可以。
两者都有效,因为它们很容易。必须在后台生成一个进程,然后找到它的 pid,然后复制它,然后用另一个命令杀死它并不容易。
使用 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
Run Code Online (Sandbox Code Playgroud)
在 bash 中,运行command &
会将其发送到后台。这样,您可以在同一个 shell 中启动多个命令,并在后台运行。该kill
内建可以用来杀死这些后台作业。第一个(最旧的)活动作业是%1
,下一个是%2
,依此类推。另请参阅:杀死所有后台作业