¿Por qué los servicios no comienzan en la instalación?

23

Lo he visto en algún momento, pero no encuentro nada en el hombre de ubuntu sobre este policy-rc.dbinario peculiar que impide que los servicios se inicien / reinicien / detengan cuando dpkg / apt los llama, por lo que me gustaría saber cuál es la razón de esto.

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.

Aparentemente, ningún paquete posee este binario:

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

Respuestas:

31

Este "script" está incluido en el sysv-rcpaquete. Esto es parte de una política de Debian que permite a los administradores de sistemas controlar qué servicios se inician / reinician / detienen cada vez que instalan / actualizan / desinstalan paquetes:

POLICY-RC.D Interfaz de capa de política (/usr/sbin/policy-rc.d):

La mayoría de los sistemas Debian no tendrán este script ya que la necesidad de una capa de política no es muy común. La mayoría de las personas que usan cárceles chroot solo necesitan un script de una línea que devuelva un estado de salida de 101 como el script encarcelado /usr/sbin/policy-rc.d.

El archivo /usr/sbin/policy-rc.d debe ser administrado a través del sistema de alternativas (/ usr / sbin / update-alternative) por cualquier paquete que lo proporcione.

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

/usr/sbin/policy-rc.d [opciones] --list [...]

( Fuente )

Entonces, ¿qué pasa aquí? Bueno, siempre que este script esté presente, devolverá un código que establece la política actual del sistema local (que es por defecto 101= acción prohibida por la política). Si desea cambiar la política, simplemente modifique el archivo como raíz a cualquiera de estos valores:

  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. 

El script sigue siendo un marcador de posición, pero cuando se complete, todos estos valores podrían ser devueltos. Si desea permitir que cualquier cambio sólo cambia exit 101de exit 0y hecho. Cada vez que instale / elimine / actualice un servicio, estos serán (re) iniciados / detenidos.

Braiam
fuente
66
Las imágenes de Docker tienen un exit 101 # For most Docker users, "apt-get install" only happens during "docker build", # where starting services doesn't work and often fails in humorous ways. This # prevents those failures by stopping the services from attempting to start.
arreglo
2
@Tjorriemorrie por favor, ¿puedes dar más detalles? Tengo este problema al crear una imagen acoplable y parece que no puedo solucionarlo
Jonny Flowers
posible solución: monblocnotes.com/node/2057
David Portabella
@JonnyFlowers Se refiere a estas líneas, en la fuente de
Docker
@Bigood: el número de línea cambió en la masterrama reciente . Aquí está [un enlace permanente a las líneas en la fuente de Docker ( github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/… ).
Hosam Aly