为什么启动脚本和终止脚本没有成对出现在rcX.d文件夹中?

为什么启动脚本和终止脚本没有成对出现在rcX.d文件夹中?

启动时需要执行的脚本放在/etc/init.d,以及其中包含的文件/etc/rc*.d符号链接指向 /etc/init.d 中的文件。此外,符号链接的名称指示服务是在特定运行级别启动(S*)还是停止(杀死,K*)。我发出命令“ls -al”来检查/etc/rc3.d,输出如下:

drwxr-xr-x.  2 root root 4096 Apr  6 23:04 .
drwxr-xr-x. 10 root root 4096 May 22  2015 ..
lrwxrwxrwx.  1 root root   20 May 22  2015 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx.  1 root root   17 May 22  2015 K90network -> ../init.d/network
lrwxrwxrwx.  1 root root   17 May 22  2015 S00livesys -> ../init.d/livesys
lrwxrwxrwx.  1 root root   16 Apr  6 23:04 S85mongod -> ../init.d/mongod
lrwxrwxrwx.  1 root root   15 May 31  2015 S95jexec -> ../init.d/jexec
lrwxrwxrwx.  1 root root   22 May 22  2015 S99livesys-late -> ../init.d/livesys-late

我认为启动脚本和终止脚本应该成对出现,但这是错误的,为什么?

答案1

如果这是针对 RHEL6 或类似的 Linux,这些脚本通常由 管理chkconfig(8),这确保每个服务的每个运行级别都有一个启动脚本或一个停止脚本,而不是它们是成对的。 (不确定 Ubuntu 或其他)。

从手册页chkconfig

Note that for every service, each runlevel has either a start script 
or a stop script.  When switching runlevels, init will not re-start an 
already-started service, and will not re-stop a  service that is not running.

...

--add name
  This option adds a new service for management by chkconfig.  When a new service is added, 
  chkconfig ensures that the service has either a start or a kill entry in  every  runlevel.  
  If  any  runlevel is missing such an entry, chkconfig creates the 
  appropriate entry as specified by the default values in the init script.

一个答案另一个关于运行级别的问题描述命名约定。

现在,命名方案也相当简单。名称以 S 开头的脚本将在相关运行级别启动,而名称以 K 开头的脚本将被杀死。

如果您查看运行级别更改脚本/etc/rc,您可以看到每当更改运行级别时,如何在S*使用start参数执行脚本之后使用K*输入参数执行脚本stop。同时拥有 K 和 S 脚本意味着脚本会在每个运行级别停止和启动。

# rc            This file is responsible for starting/stopping
#               services when the runlevel changes.
...
# First, run the KILL scripts.
for i in /etc/rc$runlevel.d/K* ; do
        ...
        $i stop
done
# Now run the START scripts.
for i in /etc/rc$runlevel.d/S* ; do
        ...
                exec $i start
        ...
done

我只查看 RHEL6 机器,因此如果有人可以确认其他发行版有何不同,请这样做。

相关内容