我有一个 C 程序,需要在后台运行。它模仿您可以在 OSX 上找到的智能文件夹。
我被要求通过在控制台中第二次写入它的执行命令来kill结束它。
我考虑过保存 pid 并使用第二个程序来监视输入,但我没有找到将输入发送到后台进程的方法。
我尝试过使用管道,后台程序正在从中读取数据,但输入不会发送到它。
有人可以告诉我这是否可能以及这是否是正确的方法?这也适用于守护进程吗?
最佳答案
如果你将 PID 保存在某个文件中,那么直接运行怎么样
kill(pid, SIGTERM);
如果您需要在处理时进行特殊清理(例如删除存储 PID 的文件),请为 TERM 信号实现一个处理程序(请参阅 signal
函数)。
或者,您可以使用用户信号,例如 SIGUSR1
。
关于c - 通过在另一个控制台中再次执行后台进程来结束它,如何完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41502560/