假设我有一个名为'exe'的可执行文件,它可以生成子进程。这个子进程需要成为守护进程,我们需要更改其名称。接下来我想使用killall使用新名称向此进程发送信号,但我需要使用旧名称。
事件的顺序如下:
在4上,argv [0]设置为'守护进程'。
在此之后,我可以做一个'ps'和'top',我整齐地看到这些命令的输出中出现名称'daemon'。但是,当我尝试使用killall杀死进程(向其发送信号)时,我必须提供名称'exec'而不是'守护进程'。
似乎内核并不完全了解新名称。
我之所以需要此功能,是因为我想使用相同的可执行文件生成一些具有不同职责的子进程。我还希望能够通过名称引用它们来单独停止和启动它们。我不想将新名称符号链接到常见的exec可执行文件(就像busybox一样)。
有解决方法吗?
我正在使用Linux Ubuntu 9.10。
干杯, 约翰
答案 0 :(得分:2)
某些工具使用二进制名称,其他工具使用进程名称(您作为execvp第一个参数传递的内容)。尝试应对它:)
答案 1 :(得分:2)
尝试使用pkill
代替killall