我现在已经看到了这个,但是在 ubuntu man 中没有找到任何关于这个特殊的policy-rc.d二进制文件的内容,它阻止服务在被 dpkg/apt 调用时被启动/重新启动/停止,所以我想知道这是什么原因。
Setting up lxc (0.9.0-0ubuntu3.6) ...
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.
Run Code Online (Sandbox Code Playgroud)
显然,没有包拥有这个二进制文件:
dpkg -S /usr/sbin/policy-rc.d
dpkg-query: no path found matching pattern /usr/sbin/policy-rc.d
Run Code Online (Sandbox Code Playgroud) 例如,在我的系统 (16.04) 上,有文件/lib/systemd/system/network-manager.service和/etc/init.d/network-manager。
我不明白这是如何(以及为什么)工作的。我总是通过sudo service network-manager restart. 这不应该以某种方式弄乱 systemd 吗?它似乎仍然有效。
为什么要service --status-all列出各种服务?16.04 不应该使用 systemd 而不是 Upstart 吗?
有人请解释这种共存是如何工作的。
在 Ubuntu 中总是让我感到困惑的一件事是系统服务是如何启动的。我知道 Ubuntu 使用 Upstart 并支持 SysV,但是使用哪个启动服务?当您想要“手动”启动服务时,这很重要。
例如,在我的系统上,我在/etc/init.d/<service>(SysV) 和/etc/init/<service>.conf(Upstart) 中有以下服务的文件:
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Run Code Online (Sandbox Code Playgroud)
那么如果我想在启动时禁用 MySQL 执行,我必须使用 Upstart 方式或 SysV 方式来禁用它吗?另外,我怎么知道哪些是真正用于启动通用服务的?
这里真正的疑问不是如何使用 SysV/Upstart 禁用/启用服务。真正让我感到困惑的是,某些服务似乎同时在 SysV 和 Upstart 中定义(并启用)。它们之间是否有任何优先级(就像mysql在使用 SysV 启动它时都启用了一样)?或者可能是一种工具在后台使用另一种工具?