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

21

Я видел это сейчас, но не нашел ничего в человеке 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
    
задан Braiam 25.10.2013 в 23:20
источник

1 ответ

29

Этот «скрипт» включен в пакет 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 [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 101 на exit 0 и закончите. Всякий раз, когда вы устанавливаете / удаляете / обновляете сервис, они будут (повторно) запущены / остановлены.

    
ответ дан Braiam 25.10.2013 в 23:20
источник