Инструменты пользователя

Инструменты сайта


linux:administration:systemctl

Это старая версия документа!


# Управление службами через SYSTEMCTL в Linux

## Systemctl

Systemd — система инициализации служб.

Systemctl — утилита для управления службами

## Состояния службы

  1. loaded - файл конфигурации юнита был обработан;
  2. active (running) - служба запущена с одним или несколькими выполняющимися процессами;
  3. active (exited) - единовременная настройка завершена успешно;
  4. active (waiting) - служба запущена, но ожидает событие;
  5. inactive - служба не запущена;
  6. enabled - служба будет запускаться во время начальной загрузки системы;
  7. disabled - служба не будет запускаться во время начальной загрузки системы;
  8. static - служба не может быть включена, но может быть автоматически запущен включенным юнитом.

## Управление службами

  • `systemctl status <service-name>` отображение состояния службы
  • `systemctl status rsyslog.service -l <service-name>` отображение подробного состояния службы
  • `systemctl stop <service-name>` остановка службы
  • `systemctl start <service-name>` запуск службы
  • `systemctl restart <service-name>` перезапуск службы
  • `systemctl reload <service-name>` перезагрузка конфигурации службы
  • `systemctl daemon-reload` перезагрузка конфигурации всех служб
  • `systemctl enable <service-name>` включение автозапуска
  • `systemctl disable <service-name>` выключение автозапуска
  • `systemctl mask <service-name>` отключение возможности запуска службы
  • `systemctl unmask <service-name>` включение возможности запуска службы
  • `systemctl enable --now <service-name>` запуск службы и включение автозапуска
  • `systemctl disable --now <service-name>` остановка службы и включение автозапуска

## Список служб

  • `systemctl` без параметров выводит состояние всех юнитов
  • `systemctl --type=service` вывод состояния юнитов указанного типа
  • `systemctl list-units` список юнитов, которые добавлены в systemd
  • `systemctl list-units --type=service` вывод списка всех загружаемых служб
  • `systemctl list-units --type=service --all` вывод списка всех служб
  • `systemctl list-unit-files --type=service` вывод списка служб и их состояние (кратко)
  • `systemctl is-active <service-name>` проверка, активна ли служба
  • `systemctl is-enabled <service-name>` проверка, включен ли автозапуск
  • `systemctl --failed --type=service` вывод списка только отказавших служб
  • `systemctl list-dependencies <service-name>` вывод списка зависимостей службы
  • `systemctl list-dependencies <service-name> --reverse` вывод списка служб, которые зависят от указанной

## Target

Target группирует другие юниты и может запускать и останавливать их все вместе.

При запуске системы используется graphical.target (для загрузки системы с графическим интерфейсом) или multi-user.target (для загрузки системы без графического интерфейса). Символическая ссылка /etc/systemd/system/default.target указывает на нужный target.

Для проверки текущего default.target используется команда: ``` systemctl list-dependencies default.target ```

Вывод таргета по умолчанию: ``` systemctl get-default ```

эта команда читает символическую ссылку, расположенную в /etc/systemd/system/default.target, и отображает результат.

Смена текущего target: ``` systemctl isolate <target-name>.target ``` ` ## Создание юнита

Файлы юнитов содержатся в каталоге ``` /etc/systemd/system ```

Для создания юнита нужно создать файл, например ``` touch test.service ```

и записать в файл следующее: ``` [Unit] Description=1c-server

[Service] ExecStart=/etc/init.d/srv1cv83

[Install] WantedBy=multi-user.target ```

/var/www/html/dokuwiki/data/attic/linux/administration/systemctl.1711540783.txt.gz · Последнее изменение: (внешнее изменение)