Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 10964|Ответ: 8

[linux] Менеджер сервисов Linux systemd подробно объяснение

[Скопировать ссылку]
Опубликовано 28.11.2021 10:02:32 | | | |
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 存放系统上所有的启动文件,优先级最低。
Обзор:

Linux рассматривает лог-вывод сервиса Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Добавить узел Linux и зарегистрировать его как сервис
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 устанавливает экспортер Node
https://www.itsvse.com/thread-9969-1-1.html

Профиль подразделения

Файл единиц в 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

Ресурсы:

Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.





Предыдущий:Linux тестирует подключение LDAP с помощью команды Curl
Следующий:Проблема с разрешением на загрузку файла vsftp
 Хозяин| Опубликовано 11.12.2021 17:35:26 |
[Юнит]Блок обычно является первым блоком конфигурационного файла, который определяет метаданные единицы и их связь с другими единицами. Основные направления её следующие.

Описание: Краткое описание
Документация: адрес документа
Требуется: Другие устройства, от которых зависит текущий блок, и если они не работают, текущий блок не заведётся.
Желания: Другие юниты, работающие с текущим устройством, если они не работают, текущий блок не выйдет из строя
BindsTo: Аналогично Requires, он задаёт блок, который прекращает работу текущего устройства при выходе
До: Если блок, указанный в этом поле, тоже должен быть запущен, он должен быть заведён после текущего блока
После: Если блок, указанный в этом поле, тоже должен быть запущен, он должен быть запущен раньше текущего блока
Конфликты: указанный здесь блок не может работать одновременно с текущим
Состояние... : Условия, которые должны быть выполнены для работы текущего блока, иначе он не заработает
Утверждать... : Условия, которые должны быть выполнены для работы текущего устройства, иначе будет сообщено о сбое запуска
[Установка]Обычно именно последний блок конфигурационного файла определяет, как загрузиться и нужно ли загружаться. Основные направления её следующие.

WantedBy: Её значение — одно или несколько целей, и когда текущая единица активна (включить), символическая ссылка помещается в подкаталог под каталогом /etc/systemd/system с суффиксом Target name + .wants
RequiredBy: Его значение — одно или несколько целей, и когда текущий модуль активен, символическая ссылка помещается в подкаталог под каталогом /etc/systemd/system с суффиксом Target name + .required
Alias: Псевдоним, который текущий Юнит может использовать для старта
Также: когда текущий юнит активируется, одновременно активируются другие юниты
[Сервис]Блоки используются для настройки сервисов, и только единицы типа 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 ожидает перед прекращением текущего сервиса
Окружение: Укажите переменную среды


 Хозяин| Опубликовано 11.12.2021 17:37:33 |
Тип=форкинг
Systemd считает, что сервис успешно запускается, когда процесс сервиса форкирован и родительский процесс выходит из строя. Для обычных демонов, если вы не уверены, что этот способ запуска не соответствует вашим потребностям, можно начать с этого типа. При таком типе запуска также следует указывать PIDFile=, чтобы systemd мог отслеживать основной процесс сервиса

 Хозяин| Опубликовано 15.12.2021 16:55:14 |
Команда EnvironmentFile

EnvironmentFile похож на директиву Environment, но считывает переменные среды из текстового файла. Текстовый файл должен содержать назначения переменных, разделённые разрывами строк

пример

Вы можете взять этот файл среды и использовать его переменные следующим образом:



 Хозяин| Опубликовано 04.01.2022 15:56:55 |
 Хозяин| Опубликовано 05.01.2022 9:48:21 |
Стандартный путь Docker сервисного файла /usr/lib/systemd/system/docker.service

 Хозяин| Опубликовано 23.01.2022 22:57:56 |
Просмотреть все статусы сервисов



Запросите, включен ли сервис, используя NFS в качестве примера:

 Хозяин| Опубликовано 25.02.2025 17:01:08 |
Массовые стартовые сервисы, начинающиеся с ABC

 Хозяин| Опубликовано 11.04.2025 15:57:14 |
DefaultTimeoutStartSec= и DefaultTimeoutStopSec= по умолчанию 90 секунд в Системном диспетчере и 90 секунд в User Manager.

Вход по гиперссылке виден.

Просмотрите конфигурацию указанного сервиса с помощью следующей команды:


Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com