我正在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'吗? –