пятница, 30 апреля 2021 г.

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

 Для запуска скрипта при загрузке раньше использовался /etc/rc.d/rc.local. В CentOS 7 в этом файле стоит прямое указание, что это - прошлый день и данный метод оставлен для обратной совместимости. Продвинутые же парни должны создавать свои собственные "сервисы" systemd. Попробуем и мы пойти в ногу со временем.

Задача: запускать скрипт /root/routing.sh при каждой загрузке в CentOS 7 с помощью systemd.

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

# 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

В выводе мы увидим, какую команду, когда выполнили и другие подробности.

Полезная информация по теме:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/sect-Virtual_Networking-Dynamically_changing_a_host_physical_machine_or_a_network_bridge_that_is_attached_to_a_virtual_NIC.html

https://wiki.archlinux.org/index.php/Systemd_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29


Источник: https://bozza.ru/art-267.html

Комментариев нет:

Отправить комментарий