我正在编写一个脚本,以便在 Debian Wheezy AWS EC2 AMI 启动时执行一些任务。互联网上的消息来源称,执行此操作的通常方法是安装将update-rc.d
其设置为在启动时运行所需的符号链接。
但是,当我尝试这个时,我收到错误
$ update-rc.d
-bash: update-rc.d: command not found
这个方法一直对我有用,直到 Debian Squeeze。 Debian 7.0 中执行此操作的标准方法是否发生了变化?我找不到任何解释如何以官方方式执行此操作的文档。
答案1
看起来您正尝试update-rc.d
以非特权用户身份使用?由于此工具位于/usr/sbin/
您的$PATH
.因此,请尝试以 root 用户身份运行它或通过sudo update-rc.d
.
答案2
您的脚本必须包含 LSB(Linux 标准库)标头,指示其依赖性和功能(请参阅https://wiki.debian.org/LSBInitScripts有关 LSB 标头的更多信息)。
如果存在 LSB 标头,您可以使用insserv
将脚本包含在引导过程中(请参阅https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot了解更多信息)。
答案3
创建新的 LSB 脚本并添加的一部分是作为启动服务,这是一种更标准的方法。
您还可以将任何次要脚本(例如生成报告、清理任务)添加到/etc/init.d/rc.local
.
但是请确保 rc.local 存在并启用到您的运行级别(在 debian 上通常为 3) -find /etc/rc*.d | grep rc.local