退出代码的用途是什么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 命令在将控制权返回到其父进程时都会返回该代码。