Понеділок, 18 Листопада, 2024

Як на Linux поставити автозапуск для програми

Іноді потрібно, щоб якась програма автоматично стартувала після вмикання комп’ютера. В кожній операційній системі ця задача вирішується по-своєму і у Linux її можна вирішити за допомогою утиліти systemd. Остання надає можливість зробити автозапуск для додатку в будь-якому дистрибутиві Linux, включаючи Ubuntu.

Програми, які стартують під час запуску заснованої на Linux операційної системи, контролюються systemd – системним і сервісним менеджером. systemd – це перший процес, який запускається під час запуску цієї ОС і він завжди має ідентифікатор процесу (PID) 1. Усі інші процеси, запущені на комп’ютері з Linux, запускаються systemd або процесом, який systemd вже запустив.

Щоб налаштувати systemd на автоматичний запуск потрібної вам програми під час старту Linux, виконайте такі дії:

  • Перевірте, чи існує сервісний блок для вашої програми, ввівши команду sudo systemctl list-unit-files –type=service. Вам доведеться вручну створити сервісний блок, якщо потрібний вам додаток не постачається з ним.
  • Перевірте, чи увімкнено сервісний блок потрібного вам додатку командою sudo systemctl is-enabled XXX. Заміність XXX вкажіть назву додатку.
  • Увімкніть сервісний блок додатку для автостарту командою sudo systemctl enable XXX. Замість XXX введіть ім’я додатку.
  • Знову перевірте, чи увімкнений сервісний блок потрібного вам додатку командою sudo systemctl is-enabled XXX.

Автозапуск потрібного додатку через systemd може бути не завжди зручним. В такому разі можна скористатися службою Cron. Вона виконує команди, що зберігаються в cron (crontab):

  • Відкрийте crontab командою crontab -e.
  • Додайте рядок, який починається з @reboot. Продовжте цей рядок командою запуску потрібного вам додатку у форматі [шлях до виконавчого файлу додатку] [аргумент1] … [аргумент n]. Наприклад: @reboot /root/backup.sh
  • Збережіть файл crontab
  • Повторно відкрийте файл crontab, щоб упевнитися в наявності команди запуску потрібного вам додатку.

На деяких комп’ютерах служба Cron може бути вимкненою. Переконайтеся, що вона працює командою sudo systemctl status cron.service та увімкніть її за потреби командою sudo systemctl enable cron.service.

Євген
Євген
Євген пише для TechToday з 2012 року. Інженер за освітою. Захоплюється реставрацією старих автомобілів.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися