systemd — это набор базовых строительных блоков для систем Linux. Он предоставляет менеджер системы и сервисов, который запускает и запускает остальную часть системы как PID 1.
systemd обеспечивает агрессивные возможности параллелизации, использует сокеты и активацию D-Bus для запуска сервисов, обеспечивает запуск демонов по требованию, использует группы управления Linux для отслеживания процессов, поддерживает монтировки и точки автомонтажа, а также реализует хорошо продуманную логику управления сервисами на основе зависимостей от транзакций. systemd поддерживает SysV и LSB init скрипты и может заменить sysvinit.
Другие разделы включают лог-демоны, утилиты для управления базовыми системными конфигурациями, такими как имена хоста, даты, локали, ведение списка авторизованных пользователей и запуск контейнеров и виртуальных машин, системные учетные записи, каталоги во время выполнения и настройки, а также управление конфигурациями демонов для простых сетей, синхронизацию сетевого времени, пересылку журналов и разрешение имён.
Конфигурационный файл systemd существует в следующих трёх папках:
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。
/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。 Обзор:
Профиль подразделения
Файл единиц в systemd — это файл, который кодирует информацию о различных устройствах, которыми systemd может управлять, включая сервисы, сокеты, устройства и так далее. Это руководство сосредоточено на сервисах, в таком случае файл юнита, с которым мы работаем, является .service. Файл конфигурации устройства varnish.service содержит информацию о том, как systemd должен выполнять, мониторить и управлять лаком-демоном.
Блок [Unit] обычно является первым блоком конфигурационного файла и используется для определения метаданных блока и его связи с другими единицами. Основные направления её следующие.
- Описание: Краткое описание
- Документация: адрес документа
- Требуется: Другие устройства, от которых зависит текущий блок, и если они не работают, текущий блок не заведётся.
- Желания: Другие юниты, работающие с текущим устройством, если они не работают, текущий блок не выйдет из строя
- BindsTo: Аналогично Requires, он задаёт блок, который прекращает работу текущего устройства при выходе
- До: Если блок, указанный в этом поле, тоже должен быть запущен, он должен быть заведён после текущего блока
- После: Если блок, указанный в этом поле, тоже должен быть запущен, он должен быть запущен раньше текущего блока
- Конфликты: указанный здесь блок не может работать одновременно с текущим
- Состояние... : Условия, которые должны быть выполнены для работы текущего блока, иначе он не заработает
- Утверждать... : Условия, которые должны быть выполнены для работы текущего устройства, иначе будет сообщено о сбое запуска
[Установка] обычно является последним блоком конфигурационного файла, который определяет, как загрузиться и нужно ли загружаться. Основные направления её следующие.
- WantedBy: Её значение — одно или несколько целей, и когда текущая единица активна (включить), символическая ссылка помещается в подкаталог под каталогом /etc/systemd/system с суффиксом Target name + .wants
- RequiredBy: Его значение — одно или несколько целей, и когда текущий модуль активен, символическая ссылка помещается в подкаталог под каталогом /etc/systemd/system с суффиксом Target name + .required
- Alias: Псевдоним, который текущий Юнит может использовать для старта
- Также: когда текущий юнит активируется, одновременно активируются другие юниты
Блок [Service] используется для настройки сервиса, и только единицы типа Service имеют этот блок. Основные направления её следующие.
- Тип: Определяет поведение процесса при запуске. Она имеет следующие значения.
- Type=simple: значение по умолчанию, выполните команду, указанную ExecStart, чтобы запустить основной процесс
- type=forking: Fork создаёт дочерний процесс из родительского процесса, который выходит сразу после создания
- Type=oneshot: одноразовый процесс, Systemd ждёт выхода текущего сервиса, прежде чем продолжить выполнение
- Type=dbus: Текущее обслуживание запускается через D-Bus
- type=notify: При запуске текущей службы Systemd будет уведомлён и продолжит выполнение
- type=idle: текущий сервис будет выполняться только при выполнении других задач
- ExecStart: Команда запуска текущего сервиса
- ExecStartPre: Команда, выполненная перед запуском текущей службы
- ExecStartPost: команда, выполняемая после запуска текущей службы
- ExecReload: команда, выполняемая при перезапуске текущего сервиса
- ExecStop: команда, выполняемая при остановке текущей службы
- ExecStopPost: Остановите команду, выполняемую при подаче
- RestartSec: Количество секунд между перезапуском автоматического сервиса текущего сервиса
- Restart: Определяет обстоятельства, при которых Systemd автоматически перезапустит текущий сервис, с возможными значениями, такими как всегда, на успехе, на неудаче, на ненормальном режиме, на прекращении, на watchdog
- TimeoutSec: Определяет количество секунд, которые Systemd ожидает перед прекращением текущего сервиса
- Окружение: Укажите переменную среды
Инструмент управления Systemctl
Управление программами в CentOS в основном осуществляется инструментом systemctl.
Сервис стартапа:
systemctl start name.service
Прекратить обслуживание:
systemctl stop name.service
Перезапуск сервиса:
systemctl restart name.service
Статус просмотра:
systemctl status name.service
Условный рестарт:
Если сервис был запущен ранее, он будет перезапущен, а если не запущен — он не будет эксплуатироваться
systemctl try-restart name.service
Перезарядка или перезагрузка:
Сначала перезагрузитесь, а если перезагрузка не удаётся — перезагрузитесь
systemctl reload-or-restart name.service
Перезагрузка или условная перезагрузка:
systemctl reload-or-try-restart name.service
Устанавливает, может ли пользователь настроить сервис для запуска состояния
systemctl unmask name.service
Systemctl Mask Name.Service запрещен
Просмотрите текущий статус активации сервиса:
Значение статуса команды service has started, равно 0. Значение возвращения статуса команды, которая не была запущена, не 0
systemctl is-active name.service
Смотрите все активированные сервисы:
-t Указывает тип отображаемого блока.
--all отображает более подробный список информации.
-эквивалент --все
SystemCTL-списковые единицы
SystemCTL List-Units -T Service
SystemCTL List-Units -T Service -A
Смотрите все сервисы:
Systemctl List-Units -A
Просмотр всех статусов услуг:
systemctl list-unit-files
-a 、--все: Просмотр статуса всех услуг
-t 、--type: Указывает тип объекта, который следует просматривать
loaded: Конфигурационный файл был загружен, загружен в память
active(running): Забеги, которые непрерывно обрабатываются один или несколько раз
active(exited): одноразовая конфигурация успешно завершена
активный (ожидание): Бег, ожидание события
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
Используется для указания того, на каких уровнях работы сервис включен и отключён
Is /etc/systemd/system/*.wants/sshd.service
systemctl list-unit-files --type target --all
Чтобы настроить сервис так, чтобы не запускаться:
systemctl отключить устройство сервисных имен
Проверьте, запущен ли сервис и запущен:
systemctl enabled name.service
Обратите внимание на зависимости сервисов:
systemctl list-dependencies name.service systemctl list-depebdencies
Тяжёлая нагрузка:
systemctl daemon-reload
Остановить процесс:
Имя процесса ликвидации systemctl
Ресурсы:
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
|