2013-01-08 11 views

回答

0

您正在尋找稱爲'init腳本'的東西。這些腳本,讓你開始或用一個命令停止服務,像這樣:

service httpd restart 
service httpd stop 
service httpd start 

一些Linux發行版不包括service命令,在這種情況下,您可以直接通過他們的位置訪問init腳本,/etc/init.d ,像這樣。

/etc/init.d/mysqld restart 

你可以編程你的init腳本來接受你想要的任何參數(啓動,停止,重新啓動等)。

http://www.cyberciti.biz/tips/linux-write-sys-v-init-script-to-start-stop-service.html
http://www.linuxquestions.org/questions/programming-9/how-to-write-init-script-376302/

很多時候,一個初始化腳本是不必要的,你可以用更簡單的選擇去:編寫init腳本讓你開始可以在以下網頁中找到一些基本教程在後臺執行你的程序並手動殺死它。在後臺運行在Linux上的可執行文件可以做到像這樣:

./some_prog arg1 arg2 & 

和殺戮是這樣完成的:

kill `pgrep some_prog` 

如果你是相當新的Linux,這後一種選擇可能是一個直到你掌握了初始化腳本和一般的Linux服務生態系統,這個過程要簡單得多。

+0

感謝您的優秀回答Maxwell.As在你的例子中,我更感興趣知道你將如何編碼'httpd'.I''httpd'是witten C/C++。 –

+0

我基本上會爲網站編寫一個後臺服務(比如發送每週通訊或處理在後臺等中的循環支付)。我需要編寫這個服務'httpd'的方式嗎? –

+0

啊,是的,我的回答是關於如何控制httpd,而不是實際寫它。如果你想在一個特定的時間執行一些任務,並以特定的時間間隔重複它,那麼你正在尋找的工具是cron。一旦你掌握了它,它實際上非常方便,易於使用。可以在此處找到簡要概述: http://en.wikipedia.org/wiki/Cron。 你用'crontab -e'編輯你的crontab。只要寫一個腳本來做你想做的任何事情,告訴cron多久做一次,cron會自動爲你做,就像你指定的那樣,在後臺。 –