2011-07-17 99 views
1

我试图建立一个守护进程(UNIX PLATEFORME)这个功能(命令行):停止和启动Unix的守护进程使用C

[email protected]>myDaemon start // This start the daemon 
[email protected]>myDaemon stop // This stop the daemon 
[email protected]>myDaemon show // This will show some stuff that the daemon is doing 

如果你知道这是如何实现的任何资料或意见。请告诉我 :)。

谢谢。

+4

你的问题超模糊。那些是用C编写的守护进程的命令行参数,还是C程序需要用这些参数运行myDaemon? – Tom

+0

@Tom:谢谢,我在c中编写了一个简单的守护进程,我想添加这个命令行功能来与它交互(例如mysqld守护进程) – funnyCoder

回答

2

这通常是通过向守护进程传递信号来完成的。

你必须选择一个特定的信号,以通过安装每个进程接收到信号时调用的处理程序来响应你的守护进程(SIGTERMSIGQUITSIGSTOP等)。

从shell可以使用kill(1)命令将信号发送到进程。

请注意,如果您有活动的客户端/连接/作业,则优雅的守护进程停止可能会非常棘手。通常你应该停止接收新的,并等到最后一个完成。

+0

谢谢,我可以理解开始和停止,但如何实现一个自定义命令如:myDaemon show(其中显示了一些东西) – funnyCoder

+1

有信号'SIGUSR1'和'SIGUSR2'用于应用程序特定的需求。 –

+0

这是守护进程用于实现命令行交互的正确方法吗?谢谢。 – funnyCoder