Все

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

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

FedoraSystemdУслугиУправлениеКомандная строкаТерминалПрограммное обеспечениеАдминистрирование системыКонфигурацияКомпьютеры

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

Перевод обновлен 7 несколько месяцев назад

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

Введение в systemd

Systemd — это инструмент, который предоставляет систему и менеджер служб, предназначенный для замены традиционных Unix System V (sysv) и BSD init. Он предоставляет запуск демонов по запросу, мониторинг служб, поддержку снимков и многое другое. Systemd управляется с помощью команды systemctl, отвечающей за проверку и контроль состояния системы и менеджера служб systemd.

Компоненты 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

Команда 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 о необходимости сканирования новых или измененных файлов единиц.

Создание пользовательских единиц служб

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

Шаг 1: Создание файла единицы

Откройте текстовый редактор и создайте новый файл единицы службы в каталоге /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

Шаг 2: Установите разрешения

Убедитесь, что скрипт или программа, вызываемые в ExecStart, имеют правильные разрешения:

chmod +x /usr/bin/custom-script.sh

Шаг 3: Перезагрузка systemd

После создания нового файла единицы перезагрузите systemd:

systemctl daemon-reload

Шаг 4: Запуск и включение службы

Теперь запустите и включите свою пользовательскую службу:

systemctl start my-custom-service.service
systemctl enable my-custom-service.service

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

Использование целей systemd

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

Список доступных целей

Чтобы узнать доступные цели в вашей системе, используйте:

systemctl list-units --type=target

Изменение уровня выполнения

Чтобы изменить цель или уровень выполнения, используйте:

systemctl isolate multi-user.target

Эта команда эквивалентна изменению уровня выполнения на много пользовательский режим.

Понимание журналов с помощью journalctl

Systemd поставляется с интегрированным инструментом системного журналирования, известным как journalctl. Этот инструмент управления журналами объединяет журналы всех служб, управляемых systemd в центральное хранилище.

Просмотр журнала

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

journalctl -u my-service.service

Реальное время журнала

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

journalctl -u my-service.service -f

Устранение общих проблем

Иногда могут возникать проблемы с управлением службами. Знание того, как их решать, может быть неоценимым:

Заключение

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

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

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


Комментарии