
這就是我所做的:
1)創建一個用戶some_deployer
2)然後創建一個資料夾來編寫腳本,如/company/script/<service name>
3)在這個資料夾中我創建start.sh
和stop.sh
腳本,並將所有權授予用戶some_deployer
並授予chmod 755
.
4)然後在資料夾中建立腳本後/etc/init.d/
,將<service name>-service
所有權授予使用者some_deployer
並授予權限chmod 755
。
5)然後將此服務加入到服務清單中,仍在/etc/init.d/
with內
/sbin/chkconfig --add -service (suse) 或 update-rc.d<service name>
預設值 (ubuntu)
它是否正確 ?這是進行此操作的最佳方法嗎?我問是因為我正在創建的一項服務突然不再工作了,我正在嘗試命令 /etc/init.d/-service ,它說command is not found
,為什麼會這樣?
答案1
沒有必要創建用戶,但如果這對您有利的話,當然可以。不確定你在談論/company/script/什麼,但沒有理由不這麼做。只需在執行 update-rc.d 之前確保您的腳本檔案位於 /etc/init.d 中即可。我不確定您為什麼要使用 /company/script/ 但從您的錯誤來看,您的服務名稱未通過。
在這裡查看 init.d 腳本的 LSB 規格:http://wiki.debian.org/LSBInitScripts 您建立一個具有停止/啟動/重新啟動/強制重新載入/狀態功能的腳本,然後使用 update-rc.d 或您建議的任何內容註冊它。這將允許 update-rc.d 指向單個文件,但使用它執行所有必要的操作。
答案2
不要太相信LSB,大多數發行版早已放棄sysvinit
,Ubuntu、RHEL使用upstart
(RHEL的情況大多是SysV相容模式),Fedorasystemd
現在使用已經一年多了,在Fedora 18中幾乎所有服務都是原生systemd。 systemd 的承諾之一是繼續處理 LSB 相容設置,但如果使用本機配置,它會提供許多優勢。看看它的廣泛性文件。