В чем разница между «Сервисом» и «/etc/init.d/»?

107

Я занимаюсь установкой сервера как на вкус Ubuntu, так и за его пределами - я уже полностью настроен на /etc/init.d/ для перезапуска сервисов. Теперь я получаю это сообщение:

root@tatooine:~# /etc/init.d/mysql status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql status

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status mysql
mysql start/running, process 14048

Кажется, что это произошло в последней версии LTS Ubuntu - почему? Что плохого в /etc/init.d/ и что / есть разница между service и /etc/init.d/ ?

    
задан Marco Ceppi 12.08.2010 в 19:12
источник

2 ответа

95
Скрипты

/etc/init.d - это старый способ делать вещи. Они исходят из стандарта System V. Однако эти сценарии запускаются только в определенной последовательности, поэтому никаких реальных зависимостей не может быть установлено.

Следовательно, выскочка была разработана с намерением заменить все скрипты /etc/init.d на сценарии выскочки (в /etc/init ).

service позволяет плавный переход от скриптов /etc/init.d к скриптам выскочки. В будущем, когда все больше и больше скриптов будут перенесены на выскочку, обслуживание будет по-прежнему работать, потому что оно находит обе возможности.

  • Как включить или отключить службы?
ответ дан txwikinger 12.08.2010 в 19:33
источник
26

Также проверьте справочную страницу для служебной команды: man service

service запускает скрипт в предсказуемой среде (рабочий каталог есть и только 2 переменные среды установлены: LANG и TERM). Он также добавляет возможность делать --full-restart . Итак, подведем итог:

  1. service может запускать скрипты из / etc / init или /etc/init.d (upstart или System V)
  2. service запускает скрипты в предсказуемой среде.

Аспект «предсказуемой среды» может вызвать проблемы, если по какой-либо причине ваш сценарий зависит от переменной среды. Вероятно, есть способ обойти это, но я не знаю, что это такое, и это выходит за рамки этого вопроса:)

    
ответ дан Joe Marty 08.06.2011 в 15:52