Використання Systemd для запуску служби Linux під час завантаження
Вступ
Systemd – це потужна система ініціалізації, яка використовується у більшості сучасних дистрибутивів Linux для керування системними та сервісними процесами. Однією з її ключових особливостей є можливість автоматичного запуску служб під час завантаження. У цій статті ви дізнаєтеся, як налаштувати запуск служби під час завантаження за допомогою Systemd, що забезпечить надійну роботу ваших критично важливих програм під час перезавантаження системи.
Розуміння служб Systemd
Systemd використовує модульні файли для визначення та керування службами. Ці модульні файли зберігаються у:
- Загальносистемні служби:
/etc/systemd/system/та
/lib/systemd/system/ - Служби, призначені для користувача:
~/.config/systemd/user/
Файл служби зазвичай має розширення
.serviceі містить конфігураційні директиви, які вказують Systemd, як керувати службою.
Створення службового файла Systemd
Щоб налаштувати запуск служби під час завантаження, потрібно створити файл служби Systemd. Ось приклад створення користувацької служби.
1. Створення службового файлу
Запустіть наступну команду, щоб відкрити новий файл служби у текстовому редакторі:
sudo nano /etc/systemd/system/myservice.service
2. Визначення конфігурації служби
Додайте наступний вміст, змінивши його відповідно до вашої програми:
[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: Забезпечує запуск служби у багатокористувацькому режимі (рівень запуску за замовчуванням для більшості серверів).
3. Перезавантажте Systemd і увімкніть службу
Після створення службового файлу перезавантажте Systemd, щоб розпізнати нову службу:
sudo systemctl daemon-reload
Увімкніть службу для запуску при завантаженні:
sudo systemctl enable myservice.service
4. Запуск і перевірка роботи служби
Запустіть службу вручну:
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.


