Чому послуги не запускаються при встановленні?


23

Я бачив це десь зараз, але не знаходжу нічого в людині 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

Відповіді:


31

Цей "скрипт" включений в sysv-rcпакет. Це частина політики Debian, яка дозволяє sysadmins контролювати, які служби запускаються / перезапускаються / зупиняються щоразу, коли вони встановлюють / оновляють / видаляють пакети:

Інтерфейс політичного рівня POLICY-RC.D (/usr/sbin/policy-rc.d):

Більшість систем Debian не матимуть цього сценарію, оскільки потреба в рівні політики не дуже поширена. Більшість людей, які використовують в'язниці chroot, просто потребують однолінійного сценарію, який повертає статус виходу 101 як скрипт /usr/sbin/policy-rc.d.

Файлом /usr/sbin/policy-rc.d слід керувати через систему альтернатив (/ usr / sbin / update-alternative) будь-якими пакетами, що надають його.

/usr/sbin/policy-rc.d [параметри] []

/usr/sbin/policy-rc.d [параметри] - список [...]

( Джерело )

Отже, що тут відбувається? Щоразу, коли цей сценарій присутній, він повертає код, в якому вказана поточна політика локальної системи (яка за замовчуванням 101= дія заборонена політикою). Якщо ви хочете змінити політику, просто змініть файл як корінь на будь-яке з цих значень:

  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 101для exit 0і зроблено. Щоразу, коли ви встановлюєте / видаляєте / оновляєте послугу, вони будуть (повторно) запущені / зупинені.


6
Зображення Docker мають фіксований характер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.
Tjorriemorrie

2
@Tjorriemorrie, будь ласка, чи можете ви детальніше? У мене виникає ця проблема під час створення зображення докера, і я, здається, не можу його виправити
Jonny Flowers


@JonnyFlowers Він посилається на ці рядки, в джерелі
докера

@Bigood: номер рядка змінено в останній masterгілці. Ось [ постійна посилання на рядки у джерелі докера ( github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/… ).
Хосам Алі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.