Мегаобучалка Главная | О нас | Обратная связь


Запуск и остановка сервисов, настройка их автоматического запуска при загрузке системы.



2019-11-13 173 Обсуждений (0)
Запуск и остановка сервисов, настройка их автоматического запуска при загрузке системы. 0.00 из 5.00 0 оценок




Как правило, неинтерактивные программы — демоны или сервисы — должны запускаться при загрузке системы и корректно останавливаться при её выключении/перезагрузке. Для этого в *nix-системах используется система инициализации, в состав которой входит процесс init. Как говорилось ранее, процесс init запускается ядром операционной системы при загрузке системы. Далее этот процесс, согласно настройкам системы инициализации, запускает другие процессы, выполняющие настройку оборудования, проверку и монтирование файловых систем, запуск демонов, и т.д.

Традиционной и широко распространённой в настоящее время системой инициализации является система sysvinit, представляющая собой достаточно сложную систему скриптов. Для описания состояния системы в sysvinit вводится понятия уровня загрузки (уровня выполнения). В любой момент времени система находится на некотором определённом уровне загрузки, и в ней выполняется соответствующий этому уровню набор сервисов. Имеется возможность отдать системе команду и перевести её с текущего уровня на другой. Управляет переключениями уровней загрузки процесс init. При переходе с одного уровня на другой init последовательно запускает скрипты, останавливающие работающие на текущем уровне загрузки системы сервисы, и затем запускает сервисы, которые должны работать на новом уровне.

Уровней выполнения 7, из них:

- 0 — уровень остановки системы. На этот уровень система переходит по командам poweroff, shutdown, halt. Если подобное поддерживает аппаратная платформа, то после перехода на этот уровень компьютер выключается.

- 1 — однопользовательская система. Используется только в режиме восстановления системы, обычно на этом уровне запускается только командный интерпретатор суперпользователя.

- 2 — многопользовательская система без сетевой поддержки. Как правило, в настоящее время этот уровень не используется.

- 3 — многопользовательская система. Это основной уровень работы системы, используемый по умолчанию.

- 4 — предоставлено для настройки конкретных систем. Обычно то же самое, что и уровень 3, и не используется.

- 5 — многопользовательская система с поддержкой графики. Изначально для настольных системы предусматривалась загрузка на 3-ий уровень, если не требовался запуск графической среды, и на 5-ый — если графическая среда использовалась. В настоящий момент в настольных системах графическая среда запускается и на 3-ем уровне, т.е. 5-ый уровень практически не используется.

- 6 — уровень перезагрузки системы. На этот уровень система переходит по командам reboot и shutdown -r. После завершения перехода компьютерная система должна перезагрузиться.

Как правило, переходы между уровнями в работающей системе не производятся, и нужны только при её загрузке или остановке.

В Ubuntu и ряде других дистрибутивов сервисы запускаются скриптами, расположенными в каталоге /etc/rc.d/init.d/. На этот каталог есть символьная ссылка /etc/init.d/, использование путей /etc/init.d/ и /etc/rc.d/init.d/ равнозначно. Для управления тем, какой скрипт и на каком уровне запускается, используется команда chkconfig.

Посмотреть, какие сервисы должны выполняться при загрузке системы, можно командной chkconfig --list:

# chkconfig --list

crond      0:off 1:off 2:on 3:on 4:on 5:on 6:off

fbsetfont  0:off 1:off 2:off 3:off 4:off 5:off 6:off

ifrename   0:off 1:off 2:on 3:on 4:on 5:on 6:off

klogd      0:off 1:off 2:on 3:on 4:on 5:on 6:off

lighttpd   0:off 1:off 2:off 3:off 4:off 5:off 6:off

netfs      0:off 1:off 2:off 3:on 4:on 5:on 6:off

network    0:off 1:off 2:on 3:on 4:on 5:on 6:off

portmap    0:off 1:off 2:off 3:off 4:off 5:off 6:off

random     0:off 1:off 2:on 3:on 4:on 5:on 6:off

rawdevices 0:off 1:off 2:off 3:off   4:off 5:off 6:off

sshd       0:off 1:off 2:on 3:on 4:on 5:on 6:off

syslogd    0:off 1:off 2:on 3:on 4:on 5:on 6:off

Например, демон sshd выключен на уровнях 0, 1 и 6, и включён на уровнях 2, 3, 4 и 5. Посмотреть на состояние конкретного сервиса можно, указав его имя:

# chkconfig --list lighttpd

lighttpd   0:off 1:off 2:off 3:off 4:off 5:off 6:off

Как видно, сервис lighttpd выключен и при перезагрузке системы запускаться не будет.

Для включения сервиса следует выполнить команду
chkconfig <имя сервиса> on:

# chkconfig lighttpd on

# chkconfig --list lighttpd

lighttpd   0:off 1:off 2:on 3:on 4:on 5:on 6:off

Выключается сервис командой chkconfig <имя сервиса> off.

Включение и выключение сервисов в конфигурации запуска системы не запускает и не останавливает их в работающей системе. Как правило, перезагрузка *nix-систем — это очень редкое и обычно вынужденное событие. Для запуска и остановки сервисов в работающей системе используется команда service. Формат её вызова:

service <имя сервиса> <команда>.

Имя сервиса то же, что и для команды chkconfig (и, на самом деле, это имя скрипта из /etc/init.d/). Все сервисы поддерживают команды start (для запуска неработающего сервиса), stop (для остановки работающего сервиса), restart (для остановки и последующего запуска сервиса), status (для получения статуса сервиса). Возможны и дополнительные команды, которые можно узнать, запустив service <имя сервиса> без указания команды.

Подавляющее большинство скриптов в /etc/init.d отслеживают состояние запускаемых ими программ и не позволят повторно запустить их.

Например, для сервиса lighttpd:

# service lighttpd

Usage: lighttpd {start|stop|restart|condstop|condrestart|condreload|reload|status}

# service lighttpd status

lighttpd is stopped

# service lighttpd start

Starting lighttpd service: [ DONE ]

# service lighttpd status

lighttpd is running

[root@lab-100 ~]# service lighttpd restart

Stopping lighttpd service: [ DONE ]

Starting lighttpd service: [ DONE ]

# service lighttpd status

lighttpd is running

# service lighttpd stop

Stopping lighttpd service: [ DONE ]

# service lighttpd status

lighttpd is stopped

# service lighttpd restart

Service lighttpd is not running.[PASSED]

Starting lighttpd service: [ DONE ]

#

Видно, что сервис lighttpd поддерживает команды start, stop, restart, status. Команды condstop, condrestart и condreload в основном предназначены для перезапуска сервиса при обновлении пакета с ним.

Изначально сервис не был запущен. По команде service lighttpd start он был запущен, что подтвердил последующий вывод команды
service lighttpd status. Также успешно прошёл перезапуск сервиса (в процессе которого он остановился и заново запустился, перечитав свою конфигурацию), и его остановка. Последняя команда restart не нашла работающего сервиса lighttpd, о чём сообщила, и потом его успешно запустила.

Помимо sysvinit существуют и другие системы инициализации: Upstart, Runit, systemd, и т.д. Выбор той или иной системы инициализации зависит от предпочтений составителей конкретного дистрибутива и направленности конкретного дистрибутива для решения тех или иных задач. Описанная выше sysvinit отличается малой требовательностью к ресурсам для своей работы, и широко используется для серверных и встраиваемых систем. Основными её недостатками являются последовательное выполнение операций запуска или остановки демонов в процессе перехода с одного уровня выполнения на другой, и сложность задания правильной последовательности запуска и остановки зависящих друг от друга демонов.

Для современных настольных Linux-систем в настоящее время преимущественно выбирается система инициализации systemd, обеспечивающая параллельный запуск демонов при загрузке системы и, тем самым, существенно уменьшающая время загрузки. Для просмотра и управления конфигурацией в systemd используются консольная команда systemctl и её графический аналог systemadm, хотя в целях совместимости поддерживаются также скрипты sysvinit в /etc/rc.d/init.d/ и команды service и chkconfig.



2019-11-13 173 Обсуждений (0)
Запуск и остановка сервисов, настройка их автоматического запуска при загрузке системы. 0.00 из 5.00 0 оценок









Обсуждение в статье: Запуск и остановка сервисов, настройка их автоматического запуска при загрузке системы.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (173)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)