あるsysvinitスクリプトを別のスクリプトよりも先に実行して、その方法を見つけ出したいと思います。
確認するために、これは実際に私の好きな順序で行われます。リストが表示されます。
私はsudo insserv --showall
すでに見つけましたが、initスクリプトを複数回リストするので、頭や尻尾を作ることはできません。
Debianで/etc/init.dスクリプトがどの順序でロードされるかを調べる方法は?
あるsysvinitスクリプトを別のスクリプトよりも先に実行して、その方法を見つけ出したいと思います。
確認するために、これは実際に私の好きな順序で行われます。リストが表示されます。
私はsudo insserv --showall
すでに見つけましたが、initスクリプトを複数回リストするので、頭や尻尾を作ることはできません。
Debianで/etc/init.dスクリプトがどの順序でロードされるかを調べる方法は?
回答:
/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よりも先に実行されます。例えば :
2つの単純なスクリプトがあります。second.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でテスト済み