Почему сервисы не запускаются при установке?

Я видел это когда-то сейчас, но не нашел ничего в 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.

Очевидно, ни один пакет не владеет этим двоичным файлом:

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

1 ответ

Решение

Этот "сценарий" включен в sysv-rc пакет. Это часть политики Debian, которая позволяет системным администраторам контролировать, какие службы запускаются / перезапускаются / останавливаются при установке / обновлении / удалении пакетов:

POLICY-RC.D Интерфейс уровня политики (/usr/sbin/policy-rc.d):

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

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

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

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

( Источник)

Итак, что здесь происходит? Что ж, всякий раз, когда этот скрипт присутствует, он возвращает код, в котором указана текущая политика локальной системы (которая по умолчанию 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 101 за exit 0 и сделано. Всякий раз, когда вы устанавливаете / удаляете / обновляете службу, она будет (пере) запускаться / останавливаться.

Другие вопросы по тегам