Почему статус service_name дает разные ответы для разных сервисов?

Запуск команды «service service_name status» дает три разных типа вывода, когда используются три разных service_names. Я попытался использовать atftpd, apache2 и isc-dhcp-server, как показано ниже.

user@host:~$ service atftpd status
Usage: /etc/init.d/atftpd {start|stop|restart|reload|force-reload}
user@host:~$ service apache2 status
Apache2 is running (pid 1103).
user@host:~$ service isc-dhcp-server status
isc-dhcp-server start/running, process 5696

Может ли это быть из-за того, что atftpd не был преобразован в Upstart?

Состояние для isc-dhcp-server показывает «запуск / запуск», что указывает на то, что он был преобразован для использования Upstart. Я бы подумал, что apache2 уже будет преобразован в Upstart. Если да, то почему не отображается «запуск / работа»?

3
задан 18 October 2012 в 00:06

2 ответа

Правильно, это потому, что вы проверяете состояние двух типов сервисов, один из них - Upstart ntive (isc-dhcp-server), а два других - сценарии инициализации в стиле System V . Один из этих сценариев SysV (atftpd) не поддерживает команду состояния. Подкоманда status не является обязательной командой сценария инициализации, в отличие от start и stop.

Причина, по которой Apache не был преобразован в Upstart, заключается в том, что он разветвляет процессы. Короче говоря, Upstart использует средство ядра ptrace () для отслеживания разветвлений, но отслеживает только разветвления, но не завершает работу, предполагая, что родительский процесс пропал. Короче говоря, это несовместимо с тем, как некоторые демоны обрабатывают разветвления, такие как apache2 и postfix.

Эти две старые ошибки попадают в суть дела.

Некоторые люди добились небольшого успеха в написании своих собственных заданий Upstart и запуске Apache с опцией «без отсоединения», но это не поддерживается, и если вы не будете осторожны, обновление пакета может привести к засорению вашего компьютера. изменения. Сценарии инициализации и задания Upstart не предназначены для редактирования пользователем. Dpkg считает это конфликтом и подскажет вам при обновлении. Если у вас нет конкретной причины переключать Apache на собственное задание Upstart, я бы остановился на сценарии инициализации. Примечание: способ правильно изменить задания Upstart - создать файл .override [см. man 5 init ].

В будущем Upstart может переключиться с ptrace () на использование cgroups для управления группами процессов, что устранит проблему такого типа. Но это все еще за горизонтом, я верю.

0
ответ дан 18 October 2012 в 00:06

Я думаю, что могу немного больше понять после того, как покопался в Ubuntu, а также по поиску в Google. Все сервисы не были перенесены в Upstart.

ls -l /etc/init.d/

Приведенная выше команда перечисляет все файлы, но нас интересует несколько.

-rwxr-xr-x 1 root root 7621 Feb  6  2012 apache2
-rwxr-xr-x 1 root root 1511 Oct 17  2011 atftpd
lrwxrwxrwx 1 root root   21 Sep 14 10:57 isc-dhcp-server -> /lib/init/upstart-job

Как вы можете видеть, apache2 и atftpd еще не были конвертированы в Upstart, а isc-dhcp-server имел. Давайте перечислим файлы в другом каталоге.

ls -l /etc/init

Снова в списке много файлов, но нас интересует только один:

-rw-r--r-- 1 root root 1704 Sep 14 10:56 isc-dhcp-server.conf

Это подтверждает, что isc-dhcp-server был преобразован в Upstart, а apache2 и atftpd - нет. [ 1119]

Но теперь вопрос заключается в том, использовать ли старые команды invoke-rc.d или /etc/init.d/ для запуска / остановки / и т.д. services, или использовать команду service , или использовать команду initctl (Upstart)? Ответ, который я понимаю лучше всего, это всегда использовать команду service . В зависимости от того, как файлы инициализации сконфигурированы в /etc/init.d/, служба будет использовать initctl (или start или stop ]) для сервисов, конвертированных в Upstart, и используйте более старый /etc/init.d/ для сервисов, которые не были конвертированы. Как пользователи мы не должны беспокоиться и всегда используем сервис . Отказ от ответственности: я проверял это только в Ubuntu 12.04.

0
ответ дан 18 October 2012 в 00:06

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

Похожие вопросы: