Воскресенье, 22 декабря, 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-enabledXXX. Замена XXX укажите название приложения.
  • Включите сервисный блок приложения для автостарта командой sudo systemctl enableXXX. Вместо XXX введите имя приложения.
  • Снова проверьте, включен ли сервисный блок нужного вам приложения командой sudo systemctl is-enabledXXX.

Автозапуск нужного приложения через 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Абонентипідписуватися