我有一个 Debian 最小安装,我只想在启动时启动一个自定义脚本。
- 我有一个脚本/etc/init.d/myscript,
我放入一个
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.boot
,init.d/.depend.start
和init.d/.depend.stop
:也许你也需要更新这些文件?如果你决定手动更改它们(但 有什么问题update-rc.d
?),请格外小心,不要让进一步的调用update-rc.d
弄乱你的编辑……
请参阅man startpar
并man 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.