/etc/rc0.d 中出现一些奇怪的情况

/etc/rc0.d 中出现一些奇怪的情况

我使用 Ubuntu 12.04.1,
我只是想找到一个管理服务的好工具,但我发现它并不存在……
本机“update-rc.d”管理服务,但不提供信息,而本机“chkconfig”不提供信息,但当我尝试在某些运行级别激活某些服务时会抛出错误。
无论如何,我只是列出了 /etc/rc0.d/ 目录,并找到了网络脚本的启动链接(以“S”开头的链接):

user@comp:/etc/rc0.d$ ls -la
total 20
drwxr-xr-x   2 root root  4096 окт.  11 16:45 .
drwxr-xr-x 139 root root 12288 окт.  21 11:55 ..
lrwxrwxrwx   1 root root    17 окт.  11 16:45 K09apache2 -> ../init.d/apache2
lrwxrwxrwx   1 root root    29 окт.  11 04:39 K10unattended-upgrades -> ../init.d/unattended-upgrades
lrwxrwxrwx   1 root root    27 окт.  11 04:39 K20speech-dispatcher -> ../init.d/speech-dispatcher
-rw-r--r--   1 root root   353 июля  26 20:23 README
lrwxrwxrwx   1 root root    18 окт.  11 04:39 S20sendsigs -> ../init.d/sendsigs
lrwxrwxrwx   1 root root    17 окт.  11 04:39 S30urandom -> ../init.d/urandom
lrwxrwxrwx   1 root root    22 окт.  11 04:39 S31umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx   1 root root    20 окт.  11 04:39 S35networking -> ../init.d/networking
lrwxrwxrwx   1 root root    18 окт.  11 04:39 S40umountfs -> ../init.d/umountfs
lrwxrwxrwx   1 root root    20 окт.  11 04:39 S60umountroot -> ../init.d/umountroot
lrwxrwxrwx   1 root root    14 окт.  11 04:39 S90halt -> ../init.d/halt

我唯一的问题是:这样可以吗?
如果可以,为什么网络服务要在停机运行级别启动?
如果不行,我该如何修复?

答案1

看一下/etc/init.d/halt。这个文件肯定属于/etc/rc0.d- 它唯一定义的是stop功能(即/etc/init.d/halt start无操作)。因此,我们可以假设中的脚本/etc/rc0.d是使用stop而不是start参数调用的。

然后看一下/etc/init.d/networking,我们看到:

stop)
    check_network_file_systems
    check_network_swap

    log_action_begin_msg "Deconfiguring network interfaces"
    if ifdown -a --exclude=lo $verbose; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

它首先确保网络上不再安装任何文件系统(umountnfs.sh运行后应该是这种情况),然后禁用网络(通过ifdown),例如,释放 DHCP 租约或在网络取消配置后想要做的任何其他合理的操作。

总而言之,有一个链接/etc/init.d/networking/etc/rc0.d完全没问题的。

(请注意,我使用的是 Debian,但脚本基本上应该是相同的。)

此外,您通常应该使用update-rc.d,它能够启用/禁用服务(针对特定运行级别或一般情况),并ls查看哪些服务已启用/禁用。我猜 Ubuntu 不会很快切换到 systemd,尽管如果愿意的话,显然可以在 Debian 中安装它。

相关内容