如何正確創建服務?

如何正確創建服務?

這就是我所做的:

1)創建一個用戶some_deployer
2)然後創建一個資料夾來編寫腳本,如/company/script/<service name>
3)在這個資料夾中我創建start.shstop.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 相容設置,但如果使用本機配置,它會提供許多優勢。看看它的廣泛性文件

相關內容