Как добавить приложение в автозагрузку в Linux

«Как добавить приложение в автозагрузку в Linux» — вопрос из категории Linux, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В зависимости от типа приложения и дистрибутива, я использую разные методы автозагрузки:

1. Для пользовательских GUI-приложений (в DE типа GNOME/KDE): Создаю .desktop файл в ~/.config/autostart/:

[Desktop Entry]
Type=Application
Name=My Monitoring Tool
Exec=/usr/local/bin/my-monitor
Comment=Starts system monitor on login
X-GNOME-Autostart-enabled=true

2. Для системных сервисов (через systemd): Создаю юнит-файл в /etc/systemd/system/:

[Unit]
Description=Custom Backup Service
After=network.target

[Service]
Type=simple
User=backup-user
ExecStart=/opt/scripts/backup.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Активирую:

sudo systemctl daemon-reload
sudo systemctl enable custom-backup.service

3. Для пользовательских systemd сервисов: Размещаю в ~/.config/systemd/user/ и включаю:

systemctl --user enable myapp.service
systemctl --user start myapp.service
loginctl enable-linger $USER  # для запуска после выхода

4. Через cron (для скриптов):

@reboot /path/to/script.sh

В DevOps-практике я предпочитаю systemd для всего, что должно работать как сервис: он предоставляет логирование (journalctl), контроль зависимостей, автоматический рестарт и интеграцию с мониторингом.