c - 通过在另一个控制台中再次执行后台进程来结束它,如何完成?

标签 c ipc daemon

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

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

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

我尝试过使用管道,后台程序正在从中读取数据,但输入不会发送到它。

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

最佳答案

如果你将 PID 保存在某个文件中,那么直接运行怎么样

kill(pid, SIGTERM);

如果您需要在处理时进行特殊清理(例如删除存储 PID 的文件),请为 TERM 信号实现一个​​处理程序(请参阅 signal 函数)。

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

关于c - 通过在另一个控制台中再次执行后台进程来结束它,如何完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41502560/

相关文章:

python - 使用本地文件套接字的 Python 和 C++ 之间的进程间通信?

Python 线程定时器初始守护进程

perl - Perl用子守护程序守护

c - 为什么给定的 'C' 代码片段中 x 的值为 28?

c - 如何从 IDE 编译 CHOLMOD 库 (SuiteSparse)

c - Little Endian 与 Big Endian 数据结构会改变我的答案吗?

c - 是 sigsegv 的模棱两可的行为

linux - 实现提供比线程更好的隔离但性能相当的 Linux 并发原语是否可行?

qt - 需要在 Qt 中为 Symbian/S60 编写服务/守护进程

c - 如何使用信号挂起