Systemd – це потужна система ініціалізації, яка використовується у більшості сучасних дистрибутивів Linux для керування системними та сервісними процесами. Однією з її ключових особливостей є можливість автоматичного запуску служб під час завантаження. У цій статті ви дізнаєтеся, як налаштувати запуск служби під час завантаження за допомогою Systemd, що забезпечить надійну роботу ваших критично важливих програм під час перезавантаження системи.
Systemd використовує модульні файли для визначення та керування службами. Ці модульні файли зберігаються у:
/etc/systemd/system/
та /lib/systemd/system/
~/.config/systemd/user/
Файл служби зазвичай має розширення .service
і містить конфігураційні директиви, які вказують Systemd, як керувати службою.
Щоб налаштувати запуск служби під час завантаження, потрібно створити файл служби Systemd. Ось приклад створення користувацької служби.
Запустіть наступну команду, щоб відкрити новий файл служби у текстовому редакторі:
sudo nano /etc/systemd/system/myservice.service
Додайте наступний вміст, змінивши його відповідно до вашої програми:
[Unit]
Description=My Custom Service
After=network.target
[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/
[Install]
WantedBy=multi-user.target
Пояснення:
After=network.target
: Забезпечує запуск служби після того, як мережа стане доступною.ExecStart=/usr/bin/myapp
: Визначає команду для запуску служби.Restart=завжди
: Забезпечує перезапуск служби у разі збою.User=myuser
і Group=mygroup
: Запускає службу під певним користувачем і групою.WantedBy=multi-user.target
: Забезпечує запуск служби у багатокористувацькому режимі (рівень запуску за замовчуванням для більшості серверів).Після створення службового файлу перезавантажте Systemd, щоб розпізнати нову службу:
sudo systemctl daemon-reload
Увімкніть службу для запуску при завантаженні:
sudo systemctl enable myservice.service
Запустіть службу вручну:
sudo systemctl start myservice.service
Перевірте статус служби:
sudo systemctl status myservice.service
Якщо все налаштовано правильно, ви побачите вивід, який свідчить про те, що служба запущена.
Нижче наведено кілька корисних команд для керування службою Systemd:
sudo systemctl restart myservice.service
sudo systemctl stop myservice.service
sudo systemctl disable myservice.service
journalctl -u myservice.service --no-pager
Використання Systemd для запуску служб під час завантаження – це простий і ефективний спосіб забезпечити роботу критично важливих програм після перезавантаження системи. Правильно налаштувавши службовий файл Systemd, увімкнувши його під час завантаження і керуючи ним за допомогою systemctl
, ви можете підвищити надійність і автоматизацію вашого середовища Linux.