如何在 Debian Wheezy 中让脚本在启动时运行?

如何在 Debian Wheezy 中让脚本在启动时运行?

我正在编写一个脚本,以便在 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

相关内容