Config service — различия между версиями
Материал из pNp Wiki
Andy (обсуждение | вклад) (→Состояние сервисов) |
Andy (обсуждение | вклад) |
||
Строка 65: | Строка 65: | ||
|} | |} | ||
+ | == Использование systemctl == | ||
==== Состояние сервисов ==== | ==== Состояние сервисов ==== | ||
Состояние сервиса может быть определено командой <code>systemctl status name.type</code>. Например: | Состояние сервиса может быть определено командой <code>systemctl status name.type</code>. Например: | ||
Строка 101: | Строка 102: | ||
| static || Не может быть запущен во время загрузки, но может быть загружен юнитом автоматически | | static || Не может быть запущен во время загрузки, но может быть загружен юнитом автоматически | ||
|} | |} | ||
+ | |||
+ | ==== Просмотр unit файлов ==== |
Версия 13:12, 2 марта 2018
Содержание
Управление сервисами
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
systemd
,bash-completion
Общая информация
В RHEL 7
на смену классическому init'у
и стартовым скриптам, а так же запуску
демонов посредством xinetd
, пришел systemd
. Преимущества systemd
в сравнении с классической системой инициализации init
:
- Возможность распараллеливания запуска демонов, что ускоряет загрузку системы
- Запуск демонов по требованию, без необходимости использования стороннего сервиса
- Автоматическое разрешение зависимостей сервисов, что позволяет предотвратить длительное ожидание в случае, если сервису требуется сеть, а сеть недоступна.
- Метод слежения за родственными процессами благодаря использованию
cgroups
Для управления разными типами системных объектов, называемых юнитами (units
), используется утилита systemctl
. Полный список системных
объектов можно получить следующим образом:
[root@vm-02 ~]# systemctl -t help
Available unit types:
service
socket
target
device
mount
automount
snapshot
timer
swap
path
slice
scope
[root@vm-02 ~]#
Типы юнитов
Тип объекта | Описание |
---|---|
service | Описывает как управлять сервисом или приложением. Управление включает в себя запуск/остановку сервиса, при каких обстоятельствах сервис должен быть автоматически запущен, а так же информацию о зависимостях и порядке запуска |
socket | Описывает сетевой или IPC сокет или буфер FIFO который использует systemd для сокет активации. Сокет всегда имеет .service файл, который будет запущен, когда будет обращение к сокету
|
target | Используется для предоставления возможности синхронизации между другими юнитами в момент загрузки или изменения состояния. Объекты этого типа так же могут быть использованы, для приведения системы в новое состояние. Другие юниты определяют их отношение к target'ам , которые привязаны к действиям target'а |
device | Используется для описания устройства, которое было обозначено как нуждающиеся в управлении systemd сервисом udev или файловой системой sysfs . Не все устройства имеют файлы .device . Такие файлы могут потребоваться для определения порядка следования устройств, их монтирования и доступа к ним.
|
mount | Определяет точку монтирования на файловой системе под управлением systemd . .mount файлы именуются по имени точки монтирования, где слеши / , заменяются на тире -
|
automount | Определяет точку монтирования которая будет смонтирована автоматически. Данный файл должен именоваться так же, как и точка монтирования на которую он ссылается и иметь соответствующий файл .mount в котором указаны опции монтирования
|
snapshot | Создается автоматически командой systemd snapshot . Данная команда позволяет восстановить текущее состояние системы инициализации, после внесения в не еизменений
|
timer | Определяет таймер, который будет находится под управлением systemd . Аналогичен заданию для демона cron .
|
swap | Определяет пространство подкачки в системе. Имя юнита должно отражать устройство или имя файла, который будет использоваться в качестве свопа |
path | Определяет путь, который будет использован для активации на основе пути. По-умолчанию, будет запущен юнит .service c аналогичным именем, в момент изменения состояния пути. Данная возможность использует inotify для отслеживания изменений пути.
|
slice | Юнит связан с нодами cgroups позволяя ограничивать ресурсы процессам упомянутым в .slice файле. Имя юнита отражает позицию в иерархии внутри дерева cgroups
|
scope | Создаются автоматически systemd исходя из информации полученной через шину интерфейсов. Используются для управления набором внешних системных процессов.
|
Использование systemctl
Состояние сервисов
Состояние сервиса может быть определено командой systemctl status name.type
. Например:
[root@vm-02 ~]# systemctl status crond.service
crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since Mon 2018-02-12 12:38:38 MSK; 2 days ago
Main PID: 1320 (crond)
CGroup: /system.slice/crond.service
└─1320 /usr/sbin/crond -n
Feb 12 12:38:38 vm-02 systemd[1]: Started Command Scheduler.
Feb 12 12:38:38 vm-02 crond[1320]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 78% if used.)
Feb 12 12:38:39 vm-02 crond[1320]: (CRON) INFO (running with inotify support)
[root@vm-02 ~]#
Состояние юнита | Описание |
---|---|
loaded | Конфигурационный файл сервиса был обработан |
active (running) | Один или несколко процессов сервиса загружены и работают |
active (exited) | Успешно завершено некое разовое событие |
active (waiting) | Выполняется, но ждет события |
inactive | Не выполняется |
enabled | Будет запущен во время загрузки |
disabled | Не будет запущен во время загрузки |
static | Не может быть запущен во время загрузки, но может быть загружен юнитом автоматически |