Alex Flo Asked: 2014-05-14 02:50:57 +0800 CST2014-05-14 02:50:57 +0800 CST 2014-05-14 02:50:57 +0800 CST 在 Debian 7.5 上,rc.local 不会在启动时运行 772 我正在努力弄清楚为什么 rc.local 不会在启动时执行。 该文件本身是可执行的,它是从 /etc/rc2.d 调用 的,从命令行时该文件也不会返回任何错误。 任何想法还有什么要检查以确定为什么不运行? linux 1 个回答 Voted Best Answer Aaron Hall 2014-07-19T18:31:28+08:002014-07-19T18:31:28+08:00 既然您说rc.local手动运行它时会正确执行,那么立即想到的两件事是: 启动时出现问题,但在您自己运行时会起作用。也许您正在尝试运行引导时不在 PATH 中的程序。 /etc/rc.local真的没有在启动时运行。 在这两种情况下,我要做的第一件事就是放一些类似的东西 /usr/bin/printenv > /var/tmp/rc.local-$(date +%T) 作为行rc.local后的第一#!/bin/sh行。这将在每次运行时将环境变量打印到带时间戳的文件中。(不要写入文件,/tmp因为它在启动时会被清空。)/etc/rc.local手动运行并快速查看生成的文件(它将被命名为/var/tmp/rc.local-21:14:35)。然后重新启动系统。 您应该有两个/var/tmp可以比较的文件(或任何地方)。如果您只是第一个文件,/etc/rc.local则不会真正被调用。如果您有两个文件,请比较它们。后者将有一个非常稀疏的环境和 PATH。查看您的rc.local脚本,看看您尝试运行的任何内容是否取决于不在引导时环境中的某个变量或 PATH 的某些组件。如果您发现了什么,请将必要的初始化添加到rc.local.
既然您说
rc.local
手动运行它时会正确执行,那么立即想到的两件事是:/etc/rc.local
真的没有在启动时运行。在这两种情况下,我要做的第一件事就是放一些类似的东西
作为行
rc.local
后的第一#!/bin/sh
行。这将在每次运行时将环境变量打印到带时间戳的文件中。(不要写入文件,/tmp
因为它在启动时会被清空。)/etc/rc.local
手动运行并快速查看生成的文件(它将被命名为/var/tmp/rc.local-21:14:35
)。然后重新启动系统。您应该有两个
/var/tmp
可以比较的文件(或任何地方)。如果您只是第一个文件,/etc/rc.local
则不会真正被调用。如果您有两个文件,请比较它们。后者将有一个非常稀疏的环境和 PATH。查看您的rc.local
脚本,看看您尝试运行的任何内容是否取决于不在引导时环境中的某个变量或 PATH 的某些组件。如果您发现了什么,请将必要的初始化添加到rc.local
.