Crmgo Блог

Автозапуск скрипта в CentOS 7 с помощью systemd

Автозапуск скрипта в CentOS 7 с помощью systemd

Systemd приносит концепцию юнитов systemd. Юниты представлены конфигурационными файлами, размещенными в одной из директорий: /usr/lib/systemd/system/ – юниты из установленных пакетов RPM. /run/systemd/system/ — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов. /etc/systemd/system/ — юниты, созданные…

Автозапуск скрипта в CentOS 7 с помощью systemd

Systemd приносит концепцию юнитов systemd. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:

  • /usr/lib/systemd/system/ – юниты из установленных пакетов RPM.
  • /run/systemd/system/ — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.
  • /etc/systemd/system/ — юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.

 

 

Создаем файл нашей службы:

# touch /etc/systemd/system/routing-settings.service # chmod 664 /etc/systemd/system/routing-settings.service

с таким содержимым:

[Unit] Description=Routing Settings Service After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/root/routing.sh

[Install]
WantedBy=multi-user.target

User=root - запуск от имени root! Указывайте (или не указывайте) того пользователя, от имени которого должен выполняться ваш скрипт. Мой скрипт должен выполняться от root. Я не могу сказать, что это меня радует, т.к. возникает необходимость жестко контролировать размещение скрипта и права доступа к нему.

Type=oneshot означает, что процесс будет завершен до запуска дальнейших юнитов. Вполне подходит для скриптов.

Проверяем:

# systemctl start routing-settings

Если после выполнения скрипта мы увидели ожидаемый результат, то разрешим этот "сервис" для автозапуска:

# systemctl enable routing-settings

Пробуем перезагрузиться. Должно работать.

Посмотрим, когда наша служба была запущена:

# systemctl status routing-settings

Примечание: материал мог быть создан с помощью ИИ и затем отредактирован человеком. Ответственный: Dmytro Lomaka, Kaltenkirchen.