在C中停止并启动Unix守护进程

在C中停止并启动Unix守护进程,c,unix,command-line,daemon,C,Unix,Command Line,Daemon,我正在尝试开发具有以下功能(命令行)的守护程序(unix平台): 如果您知道关于如何实现这一点的任何文档或想法。请让我知道:) 谢谢。这通常是通过向守护进程发送信号来完成的 您必须在守护进程中选择要响应的特定信号(SIGTERM,SIGQUIT,SIGSTOP,等等),方法是安装一个处理程序,该处理程序在进程每次接收到信号时都会调用 您可以使用kill(1)命令从shell向进程发送信号 请注意,如果您有活动的客户端/连接/作业,那么优雅的守护进程停止可能非常棘手。通常情况下,您应该停止接收新邮

我正在尝试开发具有以下功能(命令行)的守护程序(unix平台):

如果您知道关于如何实现这一点的任何文档或想法。请让我知道:)


谢谢。

这通常是通过向守护进程发送信号来完成的

您必须在守护进程中选择要响应的特定信号(
SIGTERM
SIGQUIT
SIGSTOP
,等等),方法是安装一个处理程序,该处理程序在进程每次接收到信号时都会调用

您可以使用
kill(1)
命令从shell向进程发送信号


请注意,如果您有活动的客户端/连接/作业,那么优雅的守护进程停止可能非常棘手。通常情况下,您应该停止接收新邮件,等待最后一封邮件完成。

您的问题非常模糊。这些是用C编写的守护程序的命令行参数,还是C程序需要用这些参数运行myDaemon?@Tom:谢谢,我用C编写了一个简单的守护程序,我想添加此命令行功能以与之交互(例如mysqld守护程序)。谢谢,我能理解启动和停止,但是如何实现自定义命令,如:myDaemon show(例如,它显示了一些东西)有信号
SIGUSR1
SIGUSR2
,它们是针对特定于应用程序的需要而设计的。这是守护进程实现命令行交互的正确方法吗?谢谢。如果你真的想要“交互”,最好的方法是在你的守护进程中有一个Unix域套接字和一个监听它的专用线程。好的,谢谢,所以我在我的守护进程中实现了一个Unix域套接字服务器,但是我如何从命令行与它交互(我需要一个客户端来执行此操作,而不是使用与守护程序名称相同的命令?您明白我的意思吗?)
user@unixbox>myDaemon start // This start the daemon
user@unixbox>myDaemon stop // This stop the daemon
user@unixbox>myDaemon show // This will show some stuff that the daemon is doing