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
