我当前的问题是,我有一个挂在 Supervisor 上的进程,我想确保它能正常发送网络存在等,但是当 Supervisor 关闭时却没有网络。
我已将其跟踪至/etc/rc0.d/
此处的文件夹,我可以看到在关闭服务(包括 Supervisord)K90network
之前将如何执行。我发现这种顺序很奇怪,因为查看它时发现有一段代码可以避免在需要时关闭网络。S00killall
S00killall
[ $subsys = network ] && continue
因此,我不确定S00killall
如果网络明确因 rc0 而关闭,如何才能防止网络关闭
我在用CentOS release 6.8 (Final)
答案1
是的,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