Linux

centos中的初始化腳本和關閉順序

  • February 22, 2017

我目前的問題是我有一個掛在 supervisord 的程序,我想確保它正常發送網路存在等。但是當主管被關閉時,沒有網路。

我已將其跟踪到/etc/rc0.d/此處的文件夾中,我可以看到在處理關閉服務K90network之前將如何執行,包括 supervisord。S00killall我覺得這很奇怪,因為查看S00killall它有一段程式碼可以避免在需要時關閉網路。

[ $subsys = network ] && continue

所以,我不確定S00killall如果網路因 rc0 被顯式關閉,如何防止網路關閉

我在用CentOS release 6.8 (Final)

是的,network服務應該在腳本執行0之前在執行級別停止。killall“殺死”K*腳本在“啟動”S*腳本之前執行。

當您通過 NFS 掛載根文件系統時有一個例外。“Killing”network腳本防止停止網路以保持根文件系統一致。這是stop腳本的部分:

stop)
       [ "$EUID" != "0" ] && exit 4
       # Don't shut the network down if root is on NFS or a network
       # block device.
       rootfs=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/" && $3 != "rootfs") { print $3; }}' /proc/mounts)
       rootopts=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $4; }}' /etc/mtab)

       if [[ "$rootfs" == nfs* || "$rootopts" =~ _r?netdev ]] ; then
               net_log $"rootfs is on network filesystem, leaving network up"
               exit 1
       fi

對於您的“掛起”過程,我會嘗試做同樣的事情。放置一個類似的條件來保持網路正常執行或重新排序腳本,以便在呼叫腳本supervisord之前停止內容。network

引用自:https://serverfault.com/questions/833728