我制作了一个带有以下 LSB 标头的脚本
#! /bin/sh
### BEGIN INIT INFO
# Provides: updateservice
# Required-Start: $local_fs $time $network $named $syslog
# Required-Stop: $local_fs $time $network $named $syslog
# Default-Start:
# Default-Stop: 0
# Short-Description: Update Service
# Description: This script is meant to update and upgrade
# the system. It uses apt-get.
### END INIT INFO
将其放入/etc/init.d
并创建链接update-rc.d
并获得我想要的链接
lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh
....但是:该脚本在关闭时不执行。为什么?
手动运行/etc/init.d/update.sh stop
正是我想要的,但关闭时它不会执行。而且,正如一个有趣的事实一样,相同的脚本和配置在树莓派上的工作方式正如预期的那样。
你们是专家...有人知道吗?
PS:uname -a
输出:
Linux d3bi4n 3.16.0-4-amd64 #1 SMP Debian 3.16.7-2 (2014-11-06) x86_64 GNU/Linux
我的初始化系统是Systemd。
答案1
从你的输出:
lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh
K
inK01update.sh
表示当 linux 进入零运行级别时,在第 01 步中终止进程!我没有 debian,但是因为它们都是 linux,在 redhat linux 中,您需要添加如下所示的注释行来指示chkconfig
在这些优先级中启动或停止服务!
# chkconfig: 2345 70 80
第一个数字是运行级别(2345),第二个数字表示启动优先级(70),最后一个数字表示停止优先级(80)!
但不知道update-rc.d
需不需要!