将打开的bash进程组合在一起

时间:2013-12-20 11:16:39

标签: bash makefile terminal kill

我有4或5个命令在不同的进程中运行,我希望能够通过脚本一起杀死。

它们是make命令,我可以运行killall makepkill make,但这会杀死我可能运行的其他make命令。 所以我认为可能有一种方法可以将这些进程作为一组进程的一部分打开,然后我可以将它们作为一个组杀死它们或者循环遍历组中的项目并以这种方式杀死它们。

我拥有的一种方法是切换到另一个用户来打开进程,然后当我杀死他们时只是杀掉那个用户会话,但是如果有办法将这些进程分组,或者保留那些有些如何太棒了

有什么想法吗?

如果需要更多信息,请告诉我,但我希望的是:

openwithgroup groupname 'make command1'
openwithgroup groupname 'make command2'
openwithgroup groupname 'make command3'

# and then to kill them, maybe something like:
killgroup groupname

1 个答案:

答案 0 :(得分:1)

您可以将所有PID存储在一个数组中并杀死它们:

pids=()
make command1 &
pids+=($!)
make command2 &
pids+=($!)
make command3 &
pids+=($!)

kill ${pids[@]}

如果您在相同的脚本中运行所有这些命令,那么AFAIK将不会重复使用PID,并且您可以确定自己是killing the correct processes