Гид по технологиям

Запуск программ при старте Ubuntu

6 min read Ubuntu Обновлено 06 Jan 2026
Запуск программ при старте Ubuntu
Запуск программ при старте Ubuntu

TL;DR

Автоматический запуск приложений в Ubuntu можно настроить несколькими способами: через systemd для сервисов, через GNOME «Автозапуск приложений» для графических программ и через cron (@reboot) для простых команд. Выберите метод в зависимости от типа программы, протестируйте единоразово и не включайте в автозапуск лишние приложения.

Зачем это нужно

Часто после входа в систему приходится вручную запускать набор приложений. Это неудобно и занимает время. Автозапуск экономит его — программы открываются автоматически после загрузки системы или входа в сессию. Ниже описаны привычные варианты настройки автозапуска в Ubuntu: systemd, GNOME и cron.

Ключевые фразы для поиска

  • запуск программ при старте Ubuntu
  • автозапуск приложений Ubuntu
  • systemd автозапуск
  • GNOME автозапуск
  • cron @reboot

Запуск программ при старте через systemd

systemd — это менеджер системных сервисов, который запускается первым при загрузке. Многие серверные и системные программы поставляются с unit-файлами systemd, и их удобно включать в автозапуск с помощью systemctl.

Проверка наличия unit-файла для программы:

systemctl list-unit-files | grep 

Пример: проверим, есть ли unit-файл для Apache:

systemctl list-unit-files | grep apache2

Если unit-файл присутствует, вы увидите строку с именем service и состоянием. Скриншот ниже показывает пример вывода списка unit-файлов.

Список unit-файлов systemd

Чтобы включить сервис в автозапуск:

sudo systemctl enable apache2

Проверить, включён ли сервис для автозапуска:

sudo systemctl is-enabled apache2

Ожидаемый вывод —

enabled

Проверка статуса сервиса

Чтобы отключить автозапуск, используйте:

sudo systemctl disable apache2

Если у программы нет готового unit-файла, вы можете создать свой. Чаще всего пользовательские unit-файлы размещают в «/etc/systemd/system», а файлы, поставляемые пакетами — в «/lib/systemd/system». Авторский пример создания unit-файла:

sudo nano /lib/systemd/system/test.service

Добавьте в файл следующие строки; в поле ExecStart укажите полный путь до запускаемой команды:

[Unit]

Description=This is a test service file.

[Service]

Type=simple

ExecStart=

[Install]

WantedBy=multi-user.target

Важно: если вы создаёте unit-файл вручную для локального управления сервисами, предпочтительнее помещать его в «/etc/systemd/system». После создания файла назначьте корректные права. Например, для unit-файла в «/etc/systemd/system»:

sudo chmod 644 /etc/systemd/system/test.service

Если вы поместили файл в «/lib/systemd/system», используйте соответствующий путь для прав доступа. После создания или изменения unit-файла выполните:

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

Советы по отладке:

  • Просмотреть логи сервиса: sudo journalctl -u test.service.
  • Убедиться, что в ExecStart указан абсолютный путь и все зависимости описаны.

Запуск графических программ через GNOME «Автозапуск приложений»

Для пользовательских графических приложений удобнее использовать инструмент GNOME «Автозапуск приложений». Его можно открыть через меню приложений или через диалог «Выполнить команду» (Alt+F2) командой:

gnome-session-properties

Окно свойств сеанса GNOME

В окне «Автозапуск приложений» вы увидите список программ, которые будут запускаться при входе в сессию. Чтобы добавить новую программу, нажмите кнопку «Добавить». Откроется окно добавления автозапуска.

Добавление программы в автозапуск

Поля для заполнения:

  • Имя — произвольное, чтобы вы понимали, что это за запись.
  • Команда — полный путь к исполняемому файлу или команда запуска. Чтобы узнать путь, используйте:
which slack
  • Комментарий — необязательно. Нажмите «Добавить», затем убедитесь, что галочка рядом с программой включена.

Список автозапуска приложений

Отложенный запуск приложений

Если вы хотите, чтобы приложение запускалось не сразу после входа, а с задержкой, отредактируйте запись и добавьте перед командой sleep x; где x — количество секунд. Например, чтобы отложить запуск Slack на 120 секунд:

sleep 120; slack

Отложенный запуск приложения

Чтобы удалить программу из автозапуска, выберите запись и нажмите «Удалить».

Запуск через Cron (@reboot)

Cron позволяет выполнять команды по расписанию. Для автозапуска после перезагрузки используйте специальную директиву @reboot. Редактирование crontab для текущего пользователя:

crontab -e

Добавьте строку вида:

@reboot df -h >> ~/disk-space.txt

Это выполнит df -h при каждой загрузке и добавит результат в файл ~/disk-space.txt.

Особенности cron @reboot:

  • Команды выполняются в окружении пользователя cron — пути и переменные среды могут отличаться от интерактивной сессии.
  • Для графических программ cron обычно не подходит. Для GUI используйте GNOME автозапуск или systemd user services.

Альтернативы и дополнительные варианты

  • Создание .desktop файла в ~/.config/autostart для графических приложений. Пример содержимого файла ~/.config/autostart/myapp.desktop:
[Desktop Entry]
Type=Application
Exec=/path/to/app
Hidden=false
X-GNOME-Autostart-enabled=true
Name=MyApp
Comment=Запуск MyApp при входе
  • systemd user units: если нужно запустить демон или фоновый процесс от имени пользователя, размещайте unit в ~/.config/systemd/user/ и управляйте им через systemctl --user.

Когда автозапуск может не сработать

  • Программа зависит от сетевого подключения, а сеть ещё не поднята. Решение: добавить зависимость в systemd unit или отложить запуск.
  • Неверный путь в ExecStart или команда требует интерактивного ввода. Решение: использовать абсолютные пути и опции для неинтерактивного запуска.
  • GUI-приложение запускается в среде, отличной от ожидаемой (нужен DISPLAY или dbus). Решение: использовать GNOME автозапуск или systemd user unit с нужными переменными среды.

Безопасность и надёжность

  • Не добавляйте в автозапуск софт из ненадёжных источников.
  • Для системных сервисов избегайте запуска GUI-приложений от root.
  • Проверяйте права на unit-файлы и исполняемые файлы (обычно 644 для unit и 755 для исполняемых).
  • Логи systemd доступны через journalctl; используйте их для диагностики.

Риск-матрица и смягчения

  • Высокий риск: автозапуск ресурсоёмкого сервиса на старом оборудовании — замедление загрузки. Смягчение: отложить запуск или отключить.
  • Средний риск: сервис запускается, но не наблюдает ошибки — потеря функционала. Смягчение: настроить мониторинг и рестарт в unit-файле (Restart=on-failure).
  • Низкий риск: пользовательские приложения — неудобство, а не отказ. Смягчение: предоставить инструкцию по отключению автозапуска.

Чек-листы по ролям

Системный администратор:

  • Проверить наличие systemd unit-файла.
  • Решить, нужен ли сервис для всех пользователей или только для одного.
  • [ ] Добавить unit в /etc/systemd/system/ при необходимости.
  • Настроить логи и Restart-политику.
  • Протестировать на тестовой машине.

Пользователь рабочего стола:

  • Открыть GNOME «Автозапуск приложений».
  • Добавить программу с полным путем.
  • [ ] При необходимости добавить sleep для отложенного старта.
  • Выйти и войти снова, проверить запуск.

Мини‑методология внедрения автозапуска

  1. Определите тип приложения: системный сервис, демоническое приложение или графическое приложение.
  2. Выберите метод: systemd для сервисов, GNOME автозапуск или .desktop для GUI, cron для простых команд.
  3. Реализуйте запись (unit, .desktop или crontab).
  4. Протестируйте: перезагрузка или выход/вход в сеанс.
  5. Проверяйте логи и поведение, при необходимости отложите или отключите.

Шаблон проверки (Template)

  • Название:
  • Метод (systemd / GNOME / cron / .desktop):
  • Команда/ExecStart:
  • Путь/файл:
  • Задержка (сек):
  • Тест: что должно произойти после загрузки:
  • Логи: где смотреть:

Критерии приёмки

  • Программа запускается автоматически после перезагрузки или входа в сессию в 90% попыток (стабильность на практике).
  • Нет критических ошибок в логах unit или в логах приложения.
  • Производительность загрузки не ухудшилась критически (при необходимости — реализован отложенный запуск).

Короткая инструкция для привычных операций

  • Включить systemd-сервис в автозапуск: sudo systemctl enable имя.service
  • Отключить: sudo systemctl disable имя.service
  • Добавить GUI-приложение: открыть gnome-session-properties → Добавить.
  • Cron @reboot: crontab -e → добавить @reboot команда.

Справочник терминов (1 строка)

  • systemd — менеджер системных сервисов для современных дистрибутивов Linux.
  • Unit-файл — конфигурация сервиса в systemd, описывает, как его запускать.
  • crontab — расписание задач cron для запуска команд по времени.
  • .desktop — файл автозапуска/ярлыка для графических сред рабочего стола.

Заключение

Автозапуск упрощает повседневную работу, но требует дисциплины: включайте только необходимые приложения и проверяйте поведение после изменений. Для серверных задач используйте systemd. Для рабочих столов — GNOME автозапуск или .desktop. Для простых фоновых команд подойдет cron @reboot. Всегда тестируйте и контролируйте логи.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство