为什么服务不会在安装时启动?

我现在已经看过这个了,但是在ubuntu中找不到任何关于这个特殊的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. 

显然,没有包拥有这个二进制文件:

 dpkg -S /usr/sbin/policy-rc.d dpkg-query: no path found matching pattern /usr/sbin/policy-rc.d 

这个“脚本”包含在sysv-rc包中。 这是Debian策略的一部分,允许系统管理员在安装/升级/卸载软件包时控制启动/重新启动/停止的服务:

POLICY-RC.D策略层(/usr/sbin/policy-rc.d)接口:

大多数Debian系统都没有此脚本,因为对策略层的需求并不常见。 大多数使用chroot jails的人只需要一个单行脚本,它返回退出状态101作为jailed /usr/sbin/policy-rc.d脚本。

/usr/sbin/policy-rc.d文件必须由提供它的任何软件包通过替代系统(/ usr / sbin / update-alternatives)进行管理。

/usr/sbin/policy-rc.d [options] []

/usr/sbin/policy-rc.d [options] –list […]

( 来源 )

那么,这里发生了什么? 好吧,每当这个脚本出现时,它将返回一个代码,该代码表明本地系统的当前策略(默认情况下为101 =策略禁止的操作)。 如果要更改策略,只需将文件作为root修改为以下任何值:

  0 - action allowed 1 - unknown action (therefore, undefined policy) 100 - unknown initscript id 101 - action forbidden by policy 102 - subsystem error 103 - syntax error 104 - [reserved] 105 - behaviour uncertain, policy undefined. 106 - action not allowed. Use the returned fallback actions (which are implied to be "allowed") instead. 

该脚本仍然是占位符,但完成后可以返回所有这些值。 如果您想允许任何更改,只需更改exit 101exit 0并完成。 无论何时安装/删除/升级服务,都将(重新)启动/停止。