Отредактировано 7 несколько месяцев назад от ExtremeHow Редакционная команда
FedoraSystemdУслугиУправлениеКомандная строкаТерминалПрограммное обеспечениеАдминистрирование системыКонфигурацияКомпьютеры
Перевод обновлен 7 несколько месяцев назад
Управление службами в современных дистрибутивах Linux важно для системных администраторов и любого пользователя, которому необходимо контролировать службы, работающие на машине. Fedora, популярный дистрибутив Linux, использует systemd в качестве менеджера системы и служб. Эта статья объясняет, как эффективно управлять службами с помощью systemd в Fedora. Мы рассмотрим такие темы, как запуск, остановка, включение, отключение и проверка статуса служб, а также создание пользовательских единиц служб. Независимо от того, являетесь ли вы новичком в Fedora или в системах Linux в целом, или вы опытный пользователь, которому нужно освежить знания, это всеобъемлющее руководство полезно для всех.
Systemd — это инструмент, который предоставляет систему и менеджер служб, предназначенный для замены традиционных Unix System V
(sysv
) и BSD init
. Он предоставляет запуск демонов по запросу, мониторинг служб, поддержку снимков и многое другое. Systemd управляется с помощью команды systemctl
, отвечающей за проверку и контроль состояния системы и менеджера служб systemd.
Прежде чем мы перейдем к практическому использованию systemd, полезно понять его основные компоненты:
Единицы служб являются наиболее распространенным типом единиц в systemd. Эти единицы содержат настройки, которые определяют, что является службой, как она должна запускаться или останавливаться, от чего она зависит и другое специфическое поведение.
Файл единицы службы обычно находится в /etc/systemd/system
или /usr/lib/systemd/system
и имеет следующий синтаксис:
[Unit]
Description=My Sample Service
[Service]
ExecStart=/usr/bin/my-service
ExecStop=/usr/bin/my-service-stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
Каждый файл службы обычно содержит следующие разделы:
Команда systemctl
используется для мониторинга и контроля systemd. Ниже приведены общие задачи и способы их выполнения с помощью systemctl
:
Чтобы проверить статус службы, используйте:
systemctl status my-service.service
Эта команда предоставит информацию о статусе службы, последних журналах и многое другое.
Чтобы запустить службу, используйте следующее:
systemctl start my-service.service
Ручной запуск службы не означает, что она будет автоматически запускаться при загрузке.
Чтобы остановить службу, используется следующая команда:
systemctl stop my-service.service
Эта команда останавливает службу до ручного перезапуска или перезагрузки.
Чтобы перезапустить службу, используйте:
systemctl restart my-service.service
Эта операция останавливает службу (если она работает), а затем снова запускает ее.
Чтобы запустить службу автоматически при загрузке системы, включите ее следующим образом:
systemctl enable my-service.service
Наоборот, чтобы отключить службу, чтобы она не запускалась автоматически, используйте:
systemctl disable my-service.service
Включение службы создает символическую ссылку от файла единицы службы к конфигурации загрузки системы.
Если вы измените файл единицы или конфигурацию в дереве systemd, часто необходимо перезагрузить systemd:
systemctl daemon-reload
Эта команда сообщает systemd о необходимости сканирования новых или измененных файлов единиц.
Создание пользовательской службы позволяет запускать собственные приложения в качестве управляемых служб. Вот простой пошаговый способ создать ее:
Откройте текстовый редактор и создайте новый файл единицы службы в каталоге /etc/systemd/system/
:
sudo nano /etc/systemd/system/my-custom-service.service
Заполните его необходимым определением службы:
[Unit]
Description=Custom Service Example
[Service]
ExecStart=/usr/bin/custom-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Убедитесь, что скрипт или программа, вызываемые в ExecStart
, имеют правильные разрешения:
chmod +x /usr/bin/custom-script.sh
После создания нового файла единицы перезагрузите systemd:
systemctl daemon-reload
Теперь запустите и включите свою пользовательскую службу:
systemctl start my-custom-service.service
systemctl enable my-custom-service.service
Ваша пользовательская служба теперь должна управляться так же, как и любая другая системная служба.
Целевые точки - это конфигурации, которые позволяют абстрагировать концепцию уровней выполнения в традиционных системах инициализации. Они помогают управлять зависимостями между службами и другими единицами, предоставляя способ группировать несколько служб и единиц вместе.
Чтобы узнать доступные цели в вашей системе, используйте:
systemctl list-units --type=target
Чтобы изменить цель или уровень выполнения, используйте:
systemctl isolate multi-user.target
Эта команда эквивалентна изменению уровня выполнения на много пользовательский режим.
Systemd поставляется с интегрированным инструментом системного журналирования, известным как journalctl
. Этот инструмент управления журналами объединяет журналы всех служб, управляемых systemd в центральное хранилище.
Чтобы просмотреть журналы для конкретной службы, используйте:
journalctl -u my-service.service
При мониторинге журналов в реальном времени, используйте следующий флаг:
journalctl -u my-service.service -f
Иногда могут возникать проблемы с управлением службами. Знание того, как их решать, может быть неоценимым:
journalctl
чтобы выявить конкретные сообщения об ошибках.systemctl list-dependencies
чтобы просмотреть зависимости службы.Эффективное управление службами является основополагающим для системного администрирования в Fedora и других дистрибутивах Linux, использующих systemd. Это руководство показало, как управлять различными аспектами служб с помощью systemctl, от выполнения основных задач, таких как запуск и остановка служб, до создания пользовательских единиц служб и работы с журналами с помощью journalctl. С этими навыками вы можете гарантировать, что ваши системы работают плавно и эффективно, автоматизируйте задачи и эффективно управляйте системными службами.
Помните, что в мире Linux любое действие, которое вы выполняете в системе, может потребовать прав суперпользователя. Убедитесь, что вы имеете необходимые разрешения и всегда создавайте резервные копии важных файлов перед внесением изменений в критические системные конфигурации. Понимание systemd и инструментов, которые он предоставляет, является неоценимым для эффективного управления службами Linux.
Если вы найдете что-то неправильное в содержании статьи, вы можете