通过在另一个控制台中再次执行它来结束后台进程,怎么办呢?

时间:2017-01-06 09:25:02

标签: c ipc daemon

我在C中有一个程序需要在后台运行。它模仿了你可以在OSX上找到的智能文件夹。

我被要求 kill 通过在控制台中第二次写入它的执行命令来结束它。

我考虑过保存pid并使用第二个程序来监视输入,但我没有找到将输入发送到后台进程的方法。

我尝试过使用烟斗,而后台程序正在读取它,但输入没有进入。

有人可以告诉我它是否可能,以及这是否是正确的方法?这也适用于守护进程吗?

2 个答案:

答案 0 :(得分:1)

如果将PID保存在某个文件中,那么只需运行

即可
kill(pid, SIGTERM);

如果在处理时需要特殊清理(比如删除存储PID的文件),请为TERM信号实现处理程序(参见signal函数)。

或者,您可以使用用户信号,例如SIGUSR1

答案 1 :(得分:0)

我真的很接近让它工作,只是我的杀戮功能不起作用,但我有智能文件夹过程的PID。

我执行了以下操作:如果程序使用多于1个参数执行,则会运行智能文件夹,将其保存到文件中。

如果它只有一个参数,它会读取与smartfolder目录相同的txt文件,找到PID并发送一个kill信号。

这样当我输入只有1个参数的执行命令时,它将终止相应的进程!