我正在CentOS 7上創建我的第一個初始化腳本。我想在此腳本中以deamon的身份運行一個進程,並嘗試使用/ etc/init.d/functions文件,但是當我包含此腳本執行停止。包含/etc/init.d/functions後Bash腳本停止
假設我創建的文件是 「/etc/init.d/UpdateScript」 如果我寫:
echo "Script start"
. /etc/init.d/functions
echo "After add functions"
於是命令後: /etc/init.d/UpdateScript開始
我只有「腳本啓動」作爲輸出。但是,如果我評論「#./etc/init.d/functions」,我也有「添加函數之後」,當然還有「守護進程:命令未找到」。 這種奇怪行爲的原因是什麼?如何解決它?
嘗試'set -x'來查看'/ etc/init.d/functions'正在退出的位置。 –
'/ etc/init.d'在CentOS 7中被棄用,切換到systemd。嘗試尋找'/ lib/lsb/init-functions'以獲得更便攜的選擇。如果你還沒有安裝'redhat-lsb-core'軟件包,你需要安裝它。更好的是,編寫一個systemd'.service'文件,而不是init.d-style啓動腳本。 –
你在腳本中使用'set -e'嗎? –