Answers:
/etc/init.d/目录中有一些文件:
$ ls -al /etc/init.d/ | grep -i depend
-rw-r--r-- 1 root root 2739 Feb 17 05:20 .depend.boot
-rw-r--r-- 1 root root 2221 Feb 17 05:20 .depend.start
-rw-r--r-- 1 root root 1855 Feb 17 05:20 .depend.stop
每当您运行update-rc.d
文件时,它们都会更改。.depend.boot
文件是S
水平, .depend.start
是2 3 4 5
水平和.depend.stop
为0 1 6
。
就我而言,我的订单如下.depend.start
:
TARGETS = killprocs motd nvidia-kernel nfs-common rsyslog privoxy virtualbox
linuxlogo acpi-fakekey binfmt-support fancontrol openvpn hddtemp cgconfig
dropbox-container dbus dnscrypt-proxy pulseaudio atd cryptmount exim4
qbittorrent-nox ddclient acpi-support smartmontools ssh ntp loadcpufreq acpid
cron rsync cgrulesengd cpufrequtils bootlogs bootchart-done single rmnologin
rc.local stop-bootlogd
您还可以查看订单为何以上述方式显示。接下来的每一行如下所示:
cgrulesengd: rsyslog cgconfig
这意味着cgrulesengd
需要rsyslog
cgconfig
先启动。
对于每个运行级别(0 6),都有一个文件夹/etc/rc[N].d
在每个目录中,都有以“ S”或“ K”开头的符号链接。“ S”开始,“ K”停止。脚本以文件名的词法排序方式执行,也就是说,将先执行S10script而不是S20myscript。例如 :
我们有两个简单的脚本,第二个.sh脚本必须在当前运行级别的fist.sh脚本之后执行。
root@localhost init.d]# cat /etc/init.d/first.sh
#!/bin/bash
#
echo 'I am the first' >> /var/log/messages
root@localhost init.d]# cat /etc/init.d/second.sh
#!/bin/bash
#
echo 'I am the second' >> /var/log/messages
我目前的水平是多少?
[root@localhost init.d]# runlevel
N 5
现在我们需要一个符号链接,第一个链接是S(N)myScript,而第一个S(N + 1)mysecondScript:
root@localhost rc5.d]# ln -s /etc/init.d/first.sh /etc/rc5.d/S1first
root@localhost rc5.d]# ln -s /etc/init.d/second.sh /etc/rc5.d/S2second
我们可以重新启动并检查消息日志:
[root@localhost ~]# cat /var/log/messages | grep "I am" -A 1 -B 1
Dec 13 13:53:36 localhost rpc.statd[3468]: Version 1.0.9 Starting
I am the first
Dec 13 13:53:37 localhost hcid[3532]: Bluetooth HCI daemon
--
Dec 13 13:53:40 localhost automount[3689]: lookup_read_master: lookup(nisplus): couldn't locate nis+ table auto.master
I am the second
Dec 13 13:53:41 localhost gpm[3785]: *** info [startup.c(95)]:
在旧的Centos5上测试