Config service — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Общая информация)
Строка 35: Строка 35:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Описание системных объектов
+
==== Типы юнитов ====
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 64: Строка 64:
 
| scope || Создаются автоматически <code>systemd</code> исходя из информации полученной через шину интерфейсов. Используются для управления набором внешних системных процессов.
 
| scope || Создаются автоматически <code>systemd</code> исходя из информации полученной через шину интерфейсов. Используются для управления набором внешних системных процессов.
 
|}
 
|}
 +
 +
==== Состояние сервисов ====
 +
Состояние сервиса может быть определено командой <code>systemctl status name.unit</code>. Например:
 +
<syntaxhighlight lang="bash">
 +
[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 ~]#
 +
</syntaxhighlight>

Версия 12:51, 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 status name.unit. Например:

[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 ~]#