我正在 CentOS 7 上创建我的第一个初始化脚本。我想在此脚本中以守护进程的身份运行一个进程,并尝试使用/etc/init.d/functions 文件中的守护进程功能,但是当我包含此脚本时执行停止。
假设我创建的文件是“/etc/init.d/UpdateScript” 如果我写:
echo "Script start"
. /etc/init.d/functions
echo "After add functions"
所以在命令之后: /etc/init.d/UpdateScript 启动
我只有“脚本开始”作为输出。但是如果我评论“#./etc/init.d/functions”他们我也有“添加功能后”但是当然“守护进程:找不到命令”。 这种奇怪行为的原因是什么?如何解决?
最佳答案
/etc/init.d/functions
以return 0
结尾。当您 source
(或 .
)一个 shell 脚本时,您实际上是在用它的内容替换 source
调用。由于那里有一个返回,执行不会在它之后继续,并且永远不会执行 echo "After add functions"
。
关于linux - Bash 脚本在包含/etc/init.d/functions 后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589012/