systemd
— это система инициализации и системный
диспетчер, который стал новым стандартом для дистрибутивов Linux. Из-за
сложной адаптивности знакомство с системой systemd
оправдано, поскольку это существенно упростит администрирование
серверов. Изучение и использование инструментов и демонов, которые
включают systemd
, поможет вам лучше оценить предоставляемые
возможности и гибкость или, по крайней мере, работать с минимальным
количеством проблем.
В этом руководстве мы обсудим команду systemctl
, которая
является инструментом центрального управления для контроля системы
инициализации. Мы расскажем о том, как управлять службами, проверять
статус, изменять состояние системы и работать с файлами конфигурации.
Обратите внимание, что хотя система systemd
стала
системой инициализации по умолчанию для многих дистрибутивов Linux, она
не используется повсеместно во всех дистрибутивах. По мере изучения
этого руководства, если ваш терминал выводит ошибку bash: systemctl is not installed
, скорее всего, на вашей машине установлена другая система инициализации.
Основополагающая цель системы инициализации заключается в инициализации компонентов, которые должны запускаться после загрузки ядра Linux (традиционно называются компоненты пользовательского пространства). Система инициализации также используется для управления службами и демонами для сервера и в любой момент времени работы системы. С учетом этого мы начнем с нескольких базовых операций по управлению службами.
В systemd
целью большинства действий являются «модули», являющиеся ресурсами, которыми systemd
знает, как управлять. Модули распределяются по категориям по типу
ресурса, который они представляют, и определяются файлами, известными
как файлы модулей. Тип каждого модуля можно вывести из суффикса в конце
файла.
Для задач по управлению службами целевым модулем будут модули службы, которые имеют файлы модулей с суффиксом .service
. Однако для большинства команд по управлению службами вы можете не использовать суффикс .service
, поскольку systemd
достаточно умна, чтобы знать, что вы, возможно, хотите работать со службой при использовании команд по управлению службами.
Чтобы запустить службу systemd
, используя инструкции в файле модуля службы, используйте команду start
. Если вы работаете как пользователь без прав root, вам потребуется использовать sudo
, поскольку это влияет на состояние операционной системы:
sudo systemctl startapplication.service
Как мы уже упомянули выше, systemd
будет искать файлы *.service
для команд управления службами, так что команду можно легко ввести следующим образом:
sudo systemctl startapplication
Хотя вы можете использовать вышеуказанный формат для общего администрирования, для ясности мы будем использовать суффикс .service
для остальных команд, чтобы предельно четко выражать цель, над которой мы работаем.
Чтобы остановить работающую в данный момент службу, можно использовать команду stop
:
sudo systemctl stopapplication.service
Чтобы перезапустить работающую службу, можно использовать команду restart
:
sudo systemctl restartapplication.service
Если данное приложение может перезагрузить файлы конфигурации (без перезапуска), вы можете выдать команду reload
для инициализации этого процесса: