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.