Если я хочу запустить системную установленную службу, я могу сделать:
# /etc/init.d/some-svc start
# initctl start some-svc
# service some-svc start
# start some-svc
Если я хочу отключить сервис от выполнения при начальной загрузке, я могу сделать:
# rm /etc/rc2.d/S99some-svc
# update-rc.d some-svc disable
# mv /etc/init/some-svc.conf /etc/init/some-svc.conf.disabled
Затем существуют столь же различные вещи, которые я могу сделать для включения сервисов для запуска при начальной загрузке и так далее.
Я знаю о том, что выскочка является (относительно) новой вещью, и я знаю о том, как SysV init раньше работал, и я неопределенно знаю о наборе ерунды D-шины, но что я не знаю, то, как каждый на самом деле предназначается для взаимодействия через интерфейс с этим материалом. Например, я не знаю, как легко определить, является ли сервис Новомодным заданием или вещью SysV прежней версии, на самом деле не прочитывая источник ее сценариев оболочки экстенсивно.
Так: если я хочу запустить или остановить сервис, или в данный момент или постоянно, какой из этих инструментов я должен использовать, и почему? Если ответ зависит от некоторого атрибута (как "эта сервисная выскочка поддержек") затем, как делают меня быстро и легко узнают о том атрибуте установленного пакета?
Связано, есть ли какие-либо инструменты пользовательского интерфейса, которые могут безопасно и правильно взаимодействовать с современной инфраструктурой обслуживания (выскочка, и/или независимо от того, что ее sysv совместимость)? Например, мог я надежно использовать sysv-rc-conf
определить, какие сервисы должны запуститься?
Функционально, нет никакого различия ни между одним из этих методов вызова.
start
и stop
символьные ссылки на initctl. service
сценарий оболочки, который определяет, выполнить ли init сценарий или использовать initctl.
Самый простой способ видеть, что является Новомодным заданием, состоит в том, чтобы смотреть на /etc/init/
. Все там - Новомодное задание. Если Вы ls -l /etc/init.d/
Вы будете видеть каждый сервис и системную задачу. Задания SysV init будут реальными файлами, в то время как Новомодные задания будут символьными ссылками на /lib/init/upstart-job
который правильно вызовет Новомодное задание.
Другими словами, можно также вызвать задания Upstart путем вызова, например, /etc/init.d/apport restart
, хотя вывод предложит использовать сервис, запустите или остановитесь вместо этого.
Так, на практике это не имеет никакого значения (все же!). Но если бы я писал сценарий чего-то, то я, конечно, использовал бы сервис, запуститься, или остановка, поскольку нет почти никакого шанса, который будет удержанный от использования, тогда как вызов сервисов через/etc/init.d/мог уйти в будущем (хотя, вероятно, не скоро).
Примечание по отключению сервисов: переименование .conf работ файла, но я не рекомендую это. Вы могли бы отключить сервис тот путь, но если будет доступное обновление пакета, то dpkg будет копировать новую копию Новомодного задания и не предназначая это, Вашему сервису включают снова. Корректный способ отключить Новомодное задание состоит в том, чтобы использовать .override файл, который оставляет исходное задание неповрежденным.
Например, для отключения по левую сторону судна просто создайте названный файл /etc/init/apport.override
это содержит слово "руководство".
# echo "manual" > /etc/init/apport.override
Лично, я избегал бы использования sysv-rc-conf
. Может быть достаточно безопасно использовать его для изменения заданий SysV, но я не уверен; это, кажется, не поддерживает Новомодные задания, и нет никакого способа сказать форме интерфейс, который является который. Я придерживался бы с update-rc.d
для управления сценариями SysV.
Для большего количества Выскочки информация см.:
man 5 init
: http://manpages.ubuntu.com/manpages/precise/en/man5/init.5.html