关机前运行脚本似乎不起作用

phi*_*mue 2 ubuntu init-script sysvinit

我创建了一个小脚本backup_files.sh并将其放置在/etc/init.d

#/bin/sh
logfile=/media/verbatim/log
date >> $logfile
rsync -av /home/philipp/Documents /media/verbatim/ >> $logfile
Run Code Online (Sandbox Code Playgroud)

我希望在计算机重新启动或关闭时执行此脚本,因此我执行了以下操作:

sudo ln -s /etc/init.d/backup_files.sh /etc/rc0.d/backup_files.sh
sudo ln -s /etc/init.d/backup_files.sh /etc/rc6.d/backup_files.sh
Run Code Online (Sandbox Code Playgroud)

此外,我使脚本可执行:

sudo chmod +x /etc/init.d/backup_files.sh
Run Code Online (Sandbox Code Playgroud)

我“手动”尝试了脚本,它运行得很好。但是,如果我关闭或重新启动计算机,它显然不会执行。

有没有人看到我做错了什么?

注意:我使用的是 Xubuntu 11.10。

phi*_*mue 6

最后发现我必须给他们特定的文件名:

sudo ln -s /etc/init.d/backup_files.sh /etc/rc0.d/K10backup_files.sh
sudo ln -s /etc/init.d/backup_files.sh /etc/rc6.d/K10backup_files.sh
Run Code Online (Sandbox Code Playgroud)

/etc/rc0.d 和 /etc/rc6.d 中的脚本分别在关机和重启时执行。名称以大写开头的脚本使用k参数执行,stop而以大写开头的脚本使用参数S执行start。此外,文件的执行是按字典顺序完成的。

这些运行级别中的文件命名为:

[K | S] + nn + [string]
Run Code Online (Sandbox Code Playgroud)

nn -> 两位数字
字符串 ->必须小写字符串

可以在此处找到有关 linux 运行级别的更多信息