Вступ

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.