Perché i servizi non si avviano all'installazione?


23

L'ho visto qualche volta ora, ma non trovando nulla nell'uomo di Ubuntu su questo particolare policy-rc.dbinario che impedisce l'avvio / riavvio / arresto dei servizi quando viene chiamato da dpkg / apt, quindi vorrei sapere qual è la ragione di ciò.

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.

Apparentemente, nessun pacchetto possiede questo binario:

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

Risposte:


31

Questo "script" è incluso nel sysv-rcpacchetto. Questo fa parte di una politica Debian che consente agli amministratori di sistema di controllare quali servizi vengono avviati / riavviati / arrestati ogni volta che installano / aggiornano / disinstallano i pacchetti:

Interfaccia POLICY-RC.D Policy layer (/usr/sbin/policy-rc.d):

La maggior parte dei sistemi Debian non avrà questo script poiché la necessità di un livello di policy non è molto comune. La maggior parte delle persone che usano le chroot jail hanno solo bisogno di uno script a una riga che restituisca uno stato di uscita di 101 come script jused /usr/sbin/policy-rc.d.

Il file /usr/sbin/policy-rc.d deve essere gestito attraverso il sistema delle alternative (/ usr / sbin / update-alternatives) da tutti i pacchetti che lo forniscono.

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

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

( Fonte )

Quindi, cosa succede qui? Bene, ogni volta che questo script è presente restituirà un codice che indica la politica corrente del sistema locale (che è di default 101= azione proibita dalla politica). Se si desidera modificare il criterio, è sufficiente modificare il file come root su uno di questi valori:

  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. 

Lo script è ancora un segnaposto, ma una volta completato tutti questi valori potrebbero essere restituiti. Se si desidera consentire alcuna modifica basta cambiare exit 101per exit 0e fatto. Ogni volta che installi / rimuovi / aggiorni un servizio, questi saranno (ri) avviati / arrestati.


6
Le immagini Docker hanno un fissoexit 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.
Tjorriemorrie

2
@Tjorriemorrie, per favore, puoi elaborare? Sto riscontrando questo problema durante la creazione di un'immagine docker e non riesco a risolverlo
Jonny Flowers,


@JonnyFlowers Si riferisce a queste righe, nella fonte della
docker

@Bigood: il numero di riga è cambiato nel masterramo recente . Ecco [un permalink alle linee nella fonte docker ( github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/… ).
Hosam Aly,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.