为什么我的脚本不能在运行级别 0 下运行?

为什么我的脚本不能在运行级别 0 下运行?

我制作了一个带有以下 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

KinK01update.sh表示当 linux 进入零运行级别时,在第 01 步中终止进程!我没有 debian,但是因为它们都是 linux,在 redhat linux 中,您需要添加如下所示的注释行来指示chkconfig在这些优先级中启动或停止服务!

# chkconfig: 2345 70 80

第一个数字是运行级别(2345),第二个数字表示启动优先级(70),最后一个数字表示停止优先级(80)!

但不知道update-rc.d需不需要!

相关内容