在Debian 7.5上rc.local不会在启动时运行

我正在努力弄清楚为什么rc.local不会在启动时执行。
该文件本身是可执行的,它从/etc/rc2.d中调用
此外,从命令行的文件不会返回任何错误。
任何想法还有什么要检查找出为什么不运行?

既然你说rc.local在手动运行的时候能够正确执行,那么我们马上想到的两件事是:

  • 启动时出现错误,但在您自行运行时会出现问题。 也许你试图在启动时运行一个不在PATH中的程序。
  • /etc/rc.local确实没有在启动时运行。

在这两种情况下,我要做的第一件事就是像

 /usr/bin/printenv > /var/tmp/rc.local-$(date +%T) 

作为#!/bin/sh行之后的rc.local第一行。 这将打印环境variables到一个时间戳文件运行。 (不要将文件写入/tmp因为在启动时将文件清空。)手动运行/etc/rc.local并快速查看结果文件(它将被命名为/var/tmp/rc.local-21:14:35 )。 然后重启你的系统。

你应该在/var/tmp (或者任何地方)有两个文件可以比较。 如果你只有第一个文件,/ /etc/rc.local实际上没有被调用。 如果你有两个文件,比较它们。 后者会有一个非常稀疏的环境和PATH。 通过你的rc.local脚本来查看是否有任何你想运行的东西,这取决于某些variables或PATH的一些组件,它们不在启动时环境中。 如果您发现某些内容,请将必要的初始化添加到rc.local