web-dev-qa-db-ja.com

/etc/init.dスクリプトがDebianにロードされている順序を確認するにはどうすればよいですか?

1つのsysvinitスクリプトを別のスクリプトの前に実行したいと思っています。その方法を理解しました。

確かに、これは実際に私が好きな順序で発生します。発生する順序でリストを確認したいと思います。

Sudo insserv --showallはすでに見つかりましたが、initスクリプトが複数回リストされているため、先頭または末尾を作成できません。

/etc/init.dスクリプトがDebianにロードされている順序を確認するにはどうすればよいですか?

13
adrelanos

/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.start2 3 4 5レベル用、.depend.stop0 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

つまり、cgrulesengdrsyslogcgconfigを先に開始する必要があります。

9

すべてのランレベル(0〜6)には、/ etc/rc [N] .dフォルダーがあります。

すべてのディレクトリには、「S」または「K」で始まるシンボリックリンクがあります。 「S」で開始e「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でテスト済み

4
Sirà