2011-07-17 134 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