我*需要*在 `rc.local` 末尾添加 `exit 0` 吗?

我*需要*在 `rc.local` 末尾添加 `exit 0` 吗?

退出代码的用途是什么rc.local?没有它我似乎执行得很好。标题显示:

#!/bin/sh -e
#
# rc.local - executed at the end of each multiuser runlevel
#
# Make sure that the script will "exit 0" on success or any other
# value on error.

谁检查返回码?无论如何,它默认为 0 吗?

答案1

它没有说“总是exit 0”。再读一遍,不要换行。

确保脚本在成功时将“退出 0”,在错误时将“退出 0”或任何其他值。

  • 要指示成功,请退出 0。
  • 要指示错误,请退出任何其他值。

不一定有任何东西会检查其状态,但某些初始化系统会在屏幕上为用户显示“[OK]”或“[FAIL]”。无论如何,确保您的脚本以有意义的返回代码退出是一个很好的做法。

与任何其他脚本一样,默认退出状态将是脚本中运行的最后一个命令的退出状态。

答案2

您不需要exit 0在脚本末尾添加。

运行locate rc.local | grep -vF /etc/rc.local以查找可能涉及调用 /etc/rc.local 并检查其退出代码的文件。

/etc/init.d/rc.local 在我的 Xubuntu 15.10 中似乎是这样的 init 脚本:如果“$VERBOSE”变量不是“no”,它似乎会获取退出代码并使用该值记录一些内容。

您可以将行放入echo "$(ps -o args= $PPID)" >/tmp/caller/etc/rc.local,它会在引导期间将调用者的名称写入文件 /tmp/caller 中。在我的 Xubuntu 15.10 系统中,它是“/sbin/init 持久启动”。

答案3

rc.local 是一个脚本文件,您可以将脚本放入 linux 启动后最后运行的命令中

rc.local 不提供从错误中智能恢复的方法。如果任何命令失败,它将停止运行,如果出现任何错误,请退出 0 help

退出代码是 0 到 255 之间的数字,任何 Unix 命令在将控制权返回到其父进程时都会返回该代码。

相关内容