Отредактировано 2 Несколько недель назад от ExtremeHow Редакционная команда
ИнициализацияУслугиКомандная строкаSystemdУправлениеУправлениеСценарии загрузкиСистемный администраторКонфигурацияМониторинг
Перевод обновлен 6 дней назад
В любой системе на базе Linux службы являются неотъемлемой частью. Эти службы представляют собой фоновые процессы, которые постоянно работают для обеспечения различных функций, таких как сети, размещение баз данных, веб-серверы и многое другое. Эффективное управление этими службами является важной частью системного администрирования. Это руководство объяснит, как управлять службами с помощью systemctl
, что является утилитой командной строки для мониторинга и управления менеджером системы и служб systemd.
Прежде чем углубляться в 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, используя следующую команду:
sudo systemctl daemon-reload
Эта команда особенно важна, когда вы добавляете новые конфигурационные файлы или вносите изменения в существующие файлы в директориях /etc/systemd/system
или /lib/systemd/system
.
Иногда может потребоваться отредактировать файлы юнитов служб для настройки поведения служб. С systemctl, вы можете сделать это без прямого доступа к файлам служб:
sudo systemctl edit <service-name>
Это откроет файл юнита в вашем текстовом редакторе по умолчанию. Как только вы сохраните свои изменения и закроете редактор, systemctl создаст переопределение. Не забудьте перезагрузить конфигурацию менеджера systemd после этого.
Управление службами с помощью systemctl
- это необходимый навык для любого системного администратора Linux. Эта мощная утилита предоставляет простые команды для управления службами, работающими в системе. Будь то запуск, остановка, включение или отключение служб, systemctl
упрощает эти процессы, увеличивая надёжность и производительность системы.
Также важно понимать уровни управления службами, от простых операций, таких как запуск и остановка, до сложных операций, таких как блокировка или редактирование файлов юнитов. Когда вы станете более уверенными в использовании systemctl, вы сможете более эффективно управлять службами на системе Linux, что будет способствовать общей стабильности и эффективности системы.
Если вы найдете что-то неправильное в содержании статьи, вы можете