无需 update-rc.d 即可启动脚本

无需 update-rc.d 即可启动脚本

我有一个 Debian 最小安装,我只想在启动时启动一个自定义脚本。

  1. 我有一个脚本/etc/init.d/myscript
  2. 我放入一个chmod 700,并创建到的符号链接S20myscript

    /etc/rc2.d
    /etc/rc3.d
    /etc/rc4.d
    /etc/rc5.d
    

但是,脚本在启动时根本没有启动。

当我将此脚本与update-rc.d(或insserv...)一起使用时,它可以起作用。

我不明白,我是否被迫使用这个命令?

(不,我不想使用/etc/rc.local)。

答案1

尝试删除rc*.d目录中的所有符号链接。

然后尝试运行:

update-rc.d -n myscript enable

哪里-n意味着not-really

这将列出 insserv 应该做的事情:创建符号链接生成一些.depend.*文件

看看init.d/.depend.bootinit.d/.depend.startinit.d/.depend.stop:也许你也需要更新这些文件?如果你决定手动更改它们(但 有什么问题update-rc.d?),请格外小心,不要让进一步的调用update-rc.d弄乱你的编辑……

请参阅man startparman insserv了解这些.depend.*文件的用法。

我最后的建议是:使用update-rc.d:)

答案2

将其添加到 /etc/rc.local 有什么问题?这是最简单的方法:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.    
#
# By default this script does nothing.

相关内容