Centos 中的初始化脚本和关机命令

Centos 中的初始化脚本和关机命令

我当前的问题是,我有一个挂在 Supervisor 上的进程,我想确保它能正常发送网络存在等,但是当 Supervisor 关闭时却没有网络。

我已将其跟踪至/etc/rc0.d/此处的文件夹,我可以看到在关闭服务(包括 Supervisord)K90network之前将如何执行。我发现这种顺序很奇怪,因为查看它时发现有一段代码可以避免在需要时关闭网络。S00killallS00killall

[ $subsys = network ] && continue

因此,我不确定S00killall如果网络明确因 rc0 而关闭,如何才能防止网络关闭

我在用CentOS release 6.8 (Final)

答案1

是的,network服务应该在脚本执行0之前在运行级别停止。“终止”脚本在“启动”脚本之前执行。killallK*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

相关内容