linux - Bash 脚本在包含/etc/init.d/functions 后停止

标签 linux bash centos7 init

我正在 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/functionsreturn 0 结尾。当您 source(或 .)一个 shell 脚本时,您实际上是在用它的内容替换 source 调用。由于那里有一个返回,执行不会在它之后继续,并且永远不会执行 echo "After add functions"

关于linux - Bash 脚本在包含/etc/init.d/functions 后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589012/

相关文章:

c - While 循环占用大量 CPU

php - 文件主机的目录结构

python - 如何在 Python 中确定打开文件的大小?

linux - 恢复 hibernate 分区

python - 无法让 CentOS 7 上的 Python 3.7 使用已安装的 OpenSSL 1.1.1

php - 无法打开流或文件 : failed to open stream: Permission denied

c - 使用 GNU 工具链在 Windows 命令行上运行 ARM/C

linux - bash 正在从 Linux 中的日期格式中吃掉空格

android - 如何为 adb shell 中的按钮编写事件处理程序?

linux - nginx uWSGI 连接到 unix 套接字失败