WindowsMacПрограммное обес..НастройкиБезопасностьПродуктивностьЛинуксАндроид (Androi.. Все

Как управлять службами с помощью systemctl

Отредактировано 2 Несколько недель назад от ExtremeHow Редакционная команда

ИнициализацияУслугиКомандная строкаSystemdУправлениеУправлениеСценарии загрузкиСистемный администраторКонфигурацияМониторинг

Как управлять службами с помощью systemctl

Перевод обновлен 6 дней назад

В любой системе на базе Linux службы являются неотъемлемой частью. Эти службы представляют собой фоновые процессы, которые постоянно работают для обеспечения различных функций, таких как сети, размещение баз данных, веб-серверы и многое другое. Эффективное управление этими службами является важной частью системного администрирования. Это руководство объяснит, как управлять службами с помощью systemctl, что является утилитой командной строки для мониторинга и управления менеджером системы и служб systemd.

Понимание systemd и systemctl

Прежде чем углубляться в systemctl, важно понять, что такое systemd. Systemd - это система и менеджер служб для Linux, который предоставляет параллелизацию, использует сокеты и активацию D-Bus для запуска служб, обеспечивает запуск демонов по требованию, отслеживает процессы с использованием контрольных групп Linux и поддерживает точки монтирования и автоматического монтирования.

systemctl является утилитой командной строки, используемой для управления systemd. Она предоставляет множество опций для контроля и управления службами и юнитами. Юниты - это ресурсы, которыми systemd умеет управлять; это обычно включают в себя службы, а также другие типы, такие как точки монтирования и сокеты.

Список служб

Прежде чем управлять службами, полезно знать, как их перечислять, чтобы понять, какие службы в данный момент запущены. Следующие команды помогут:

systemctl list-units --type service --all

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

Запуск службы

Чтобы запустить службу, которая в данный момент не работает, используйте команду start следующим образом:

sudo systemctl start <service-name>

Например, чтобы запустить сервер Apache HTTP, вы бы использовали:

sudo systemctl start httpd

Остановка службы

Если вам нужно остановить службу, используется команда stop. Это полезно в различных сценариях, таких как проведение обслуживания или обновлений:

sudo systemctl stop <service-name>

Пример:

sudo systemctl stop httpd

Это останавливает сервер Apache HTTP.

Перезапуск службы

Иногда вместо остановки и перезапуска службы, вы можете захотеть перезапустить её напрямую. Это можно сделать с помощью команды restart:

sudo systemctl restart <service-name>

Пример:

sudo systemctl restart httpd

Это перезапускает сервер Apache HTTP. Это особенно полезно, когда вы внесли изменения в файл конфигурации и хотите, чтобы служба загрузила эти изменения.

Проверка статуса службы

Чтобы проверить, работает ли служба, можно использовать команду status. Таким образом, вы получите информацию о текущем статусе службы, любые сообщения об ошибках и вывод журнала:

systemctl status <service-name>

Например:

systemctl status httpd

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

Включение и отключение служб

Включение службы гарантирует, что она будет автоматически запускаться при загрузке системы. Напротив, отключение службы означает, что она не будет запускаться автоматически:

sudo systemctl enable <service-name>
sudo systemctl disable <service-name>

Например, чтобы включить сервер Apache HTTP:

sudo systemctl enable httpd

Аналогично, чтобы предотвратить его автоматический запуск:

sudo systemctl disable httpd

Включение особенно полезно для служб, которые вы хотите, чтобы всегда работали, когда ваша система включена, таких как веб-серверы или серверы баз данных.

Блокировка и разблокировка служб

Блокировка службы - это мощный способ гарантировать, что служба вообще не запускается. Как только служба заблокирована, её нельзя запустить никаким способом, пока она не будет разблокирована:

sudo systemctl mask <service-name>
sudo systemctl unmask <service-name>

Пример:

sudo systemctl mask httpd

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

sudo systemctl unmask httpd

Перезагрузка конфигурации менеджера systemd

Если вы вносите изменения в файлы конфигурации, связанные с systemd, необходимо перезагрузить конфигурацию менеджера systemd, используя следующую команду:

sudo systemctl daemon-reload

Эта команда особенно важна, когда вы добавляете новые конфигурационные файлы или вносите изменения в существующие файлы в директориях /etc/systemd/system или /lib/systemd/system.

Редактирование юнитов служб

Иногда может потребоваться отредактировать файлы юнитов служб для настройки поведения служб. С systemctl, вы можете сделать это без прямого доступа к файлам служб:

sudo systemctl edit <service-name>

Это откроет файл юнита в вашем текстовом редакторе по умолчанию. Как только вы сохраните свои изменения и закроете редактор, systemctl создаст переопределение. Не забудьте перезагрузить конфигурацию менеджера systemd после этого.

Заключение

Управление службами с помощью systemctl - это необходимый навык для любого системного администратора Linux. Эта мощная утилита предоставляет простые команды для управления службами, работающими в системе. Будь то запуск, остановка, включение или отключение служб, systemctl упрощает эти процессы, увеличивая надёжность и производительность системы.

Также важно понимать уровни управления службами, от простых операций, таких как запуск и остановка, до сложных операций, таких как блокировка или редактирование файлов юнитов. Когда вы станете более уверенными в использовании systemctl, вы сможете более эффективно управлять службами на системе Linux, что будет способствовать общей стабильности и эффективности системы.

Если вы найдете что-то неправильное в содержании статьи, вы можете


Комментарии