我目前的问题是,我有一个从supervisord挂起的过程,我想确保它正常发送networking存在等,但是当监pipe人被closures没有networking。
我已经在这里跟踪了/etc/rc0.d/文件夹,在这里我可以看到K90network将在S00killall之前执行,而S00killall负责closures服务,包括supervisord。 我觉得奇怪的是,这是订购,因为看看S00killall它有一段代码,以避免在需要的情况下closuresnetworking。
[ $subsys = network ] && continue
所以,我不确定S00killall如果networking被明确地closures了rc0, S00killall可以防止networking停止运行
我正在使用CentOS release 6.8 (Final)
是的,在执行killall脚本之前, network服务应该在运行级别0停止。 “Killing” K*脚本在“启动” S*脚本之前执行。
当通过NFS挂载根文件系统时有一个例外。 “杀” network脚本阻止停止networking,以保持根文件系统一致。 这里是脚本的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
对于你的“悬挂”过程,我会尽力去做。 放置一个类似的条件来保持networking或重新sorting脚本,以便在network脚本被调用之前停止supervisord东西。