Как настроить автозапуск программы в Linux?

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

Ответ

Для автоматического запуска программ в Linux (например, сервисов мониторинга или агентов тестирования) есть несколько основных методов.

1. Systemd (наиболее надежный для серверов и демонов) Создайте файл сервиса, например, /etc/systemd/system/my-test-agent.service:

[Unit]
Description=My Test Automation Agent
After=network.target

[Service]
Type=simple
User=testuser
ExecStart=/usr/local/bin/test-agent --config /etc/test-agent/config.yaml
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Затем выполните:

sudo systemctl daemon-reload
sudo systemctl enable my-test-agent.service
sudo systemctl start my-test-agent.service

Проверка: sudo systemctl status my-test-agent.service

2. Cron (для периодических или отложенных задач) Добавьте в crontab (crontab -e) задание, запускающееся при загрузке:

@reboot /path/to/your/script.sh

3. Автозагрузка в сессии пользователя (для GUI-инструментов) Для окружений рабочего стола (GNOME, KDE) поместите .desktop файл в ~/.config/autostart/:

[Desktop Entry]
Type=Application
Name=Test UI Recorder
Exec=/usr/bin/test-ui-recorder
Hidden=false
NoDisplay=false

Для QA-инженера: Systemd предпочтительнее для развертывания агентов непрерывного тестирования (CI) благодаря контролю за процессом, логированию (journalctl) и автоматическим перезапускам.