当我使用exec
创建新进程时,我可以使用-a
选项为其指定一些自定义名称,即exec -a MyName MyCommand
这样做便于处理一堆用不同参数启动的相同进程。例如,如果我有以下:
exec -a MyName1 MyCommand param1
exec -a MyName2 MyCommand param2
出于某种原因我想杀死后者,就像这样简单:pkill -f MyName2
.
问题是我不知道如何在使用nohup
启动的进程中实现同样的效果。我读过关于-p
选项的文章,但它并不总是受支持。disjoin
似乎也不起作用。
有人遇到过类似的问题吗?
2条答案
按热度按时间ruyhziif1#
Bash的
exec
命令有一个-a NAME
选项:根据
help exec
:pxq42qpu2#
首先,您不需要
nohup
;它可以做shell自己做不到的事情。nohup所做的大部分工作只是重定向,其余部分与
disown -h
相同(它告诉shell不要将HUP信号转发给那个进程)。当然,您也可以选择一个不同的文件来存储每个命令的日志,并将PID存储在变量中--执行后一种操作将完全避免使用
pgrep
。