【发布时间】:2021-12-31 01:56:38
【问题描述】:
我正在尝试按照示例创建一个守护程序应用程序:
在示例中,没有关于守护进程停止的操作。
因此,我很好奇:
- 如何向守护进程发送
stop信号?还是直接kill PID? - 如果守护进程只能在被杀时停止,守护进程本身是否应该在被杀时执行清理操作?就像关闭文件描述符、保存参数等一样。
提前致谢。
【问题讨论】:
-
现在,在 systemd 世界中,我认为当您收到
SIGTERM信号(实际上可以由kill发送)时,您才开始正常关机。这些信息也可能有用:freedesktop.org/software/systemd/man/… -
守护程序通常在 /var/run 或 /run 中创建一个所谓的 pid 文件,通常命名为“
.pid”,其中存储了它们的 pid。这可用于从守护进程的名称中检索守护进程的 pid 并发送 SIGTERM 信号以使其正常完成。