Битлента
Windows, macOS, Android, iOS6 мин чтения·

Автозапуск приложений в Ubuntu и Debian: графические настройки, .desktop и службы пользователя

Как добавить программу в автозапуск в Ubuntu и Debian: настройки рабочего стола, файл .desktop в ~/.config/autostart, задержка и пользовательские службы systemd.

Кратко

Программу можно запускать при входе через настройки сеанса окружения, файл .desktop в каталоге ~/.config/autostart или пользовательскую службу systemd. Первый способ проще, второй универсален для большинства окружений.

Три механизма автозапуска и чем они различаются

На настольной Linux нет единого переключателя автозапуска, как в некоторых других системах: приложения стартуют разными путями. Для домашнего компьютера на Ubuntu или Debian полезно различать три механизма, потому что у каждого свои возможности и свои места, где его искать.

МеханизмКогда срабатываетГде настраивается
автозапуск сеансапри входе пользователя в графическую средунастройки окружения или файлы .desktop
пользовательская служба systemdпри входе пользователя, иногда и раньшеsystemctl --user
системная службапри старте компьютера, до входаsystemctl без --user, права администратора

Графические программы вроде мессенджеров, облачных клиентов и менеджеров буфера обмена обычно запускают через первый механизм. Службы без окон, например синхронизация, часто оформляют как пользовательские. Системный автозапуск подходит серверным задачам и описан на странице про systemctl; для программ с окнами он, как правило, не нужен.

Графический способ: настройки окружения

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

  • GNOME (в том числе стандартная Ubuntu): отдельная программа настройки автоматически запускаемых приложений; в некоторых системах она входит в состав «Дополнительных настроек» (GNOME Tweaks) на вкладке автозапуска;
  • KDE Plasma: раздел автозапуска в системных настройках, в блоке про запуск и завершение;
  • Xfce: настройки сеанса и запуска, вкладка автозапуска приложений;
  • другие окружения обычно предлагают что-то похожее в настройках сеанса.

В таком окне вы нажимаете «Добавить», указываете имя и команду запуска, и программа сохраняет запись. Если нужной программы нет в списке, команду можно взять из её файла .desktop или проверить в терминале: если приложение открывается после ввода команды, её же можно использовать в автозапуске. Отключение работает так же: убираете галочку или удаляете запись. Сама программа при этом не удаляется, и запускать её вручную по-прежнему можно.

Прежде чем добавлять запись, убедитесь, что программа действительно нужна при каждом входе. Чем больше приложений стартует одновременно, тем дольше загрузка рабочего стола на слабом компьютере. Хорошая практика — оставить в автозапуске только то, что вы открываете сразу после входа, а остальное запускать вручную.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Файл .desktop в ~/.config/autostart

Под графическими настройками лежит простой механизм: каталог ~/.config/autostart с файлами .desktop. Любой файл оттуда окружение запускает при входе. Такой способ работает в большинстве популярных окружений и не зависит от их интерфейса, поэтому удобен, если вы настраиваете несколько компьютеров одинаково.

Минимальное содержимое файла, например ~/.config/autostart/моя-программа.desktop:

  • [Desktop Entry] — заголовок раздела;
  • Type=Application — тип записи;
  • Name=Моя программа — отображаемое имя;
  • Exec=/полный/путь/к/программе — команда запуска, лучше с полным путём.

Перезапуск не нужен: запись сработает при следующем входе. Каталог может не существовать, тогда создайте его командой mkdir -p ~/.config/autostart. Для системных программ примеры записей лежат в /etc/xdg/autostart; именно оттуда окружение берёт общесистемные автозапуски.

Чтобы отключить системную запись только для себя, скопируйте файл с тем же именем в ~/.config/autostart и добавьте строку Hidden=true. У GNOME есть также параметр X-GNOME-Autostart-enabled=false. Так вы не трогаете системный файл, а ваш вариант имеет приоритет.

Задержка запуска и проблемы с порядком

Иногда программа запускается слишком рано: сеть ещё не поднялась, панель не готова, значок в трее не появился. Обычно это решают небольшой задержкой.

Способов несколько. В некоторых версиях GNOME учитывается параметр X-GNOME-Autostart-Delay=секунды в файле .desktop. Это специфичный параметр: другие окружения (и новые версии GNOME) могут его игнорировать. Универсальный приём — обернуть команду в оболочку: Exec=sh -c "sleep 10 && /полный/путь/к/программе". Здесь число секунд подбирается опытным путём; единого значения нет, оно зависит от компьютера.

Если приложение не запускается вообще, пройдите по шагам:

  1. Скопируйте команду из Exec и выполните её в терминале — увидите ошибку, если путь неверный или нужны переменные окружения.
  2. Проверьте, что файл имеет расширение .desktop и корректный заголовок.
  3. Убедитесь, что запись не отключена строкой Hidden=true.
  4. Посмотрите журнал текущего сеанса командой journalctl --user -b, если он ведётся в вашей системе.

Программы, которые требуют графической среды, как правило, нельзя запускать как системные службы до входа пользователя: у них нет доступа к экрану.

Пользовательские службы systemd для фоновых задач

Если программа не имеет окна и должна работать в фоне, удобнее оформить её как пользовательскую службу. Файл-описание кладут в каталог ~/.config/systemd/user, например в файл имя.service. Внутри указывают раздел [Service] с параметром ExecStart= и раздел [Install] с WantedBy=default.target.

Дальше команды без sudo: systemctl --user daemon-reload заставляет systemd перечитать описания, systemctl --user enable --now имя включает службу и запускает её сразу, а systemctl --user status имя показывает состояние. Выключение — systemctl --user disable имя.

По умолчанию пользовательские службы работают, пока пользователь вошёл в систему. Чтобы они стартовали при загрузке и без входа, существует режим linger, включаемый командой loginctl enable-linger имя, но для домашнего компьютера это нужно редко.

Программы с окнами лучше оставить в автозапуске сеанса. Если вы ищете, почему лишние службы замедляют вход, вклад служб в загрузку системы показывает systemd-analyze blame (для пользовательских служб — с ключом --user), а общие принципы управления службами описаны в словаре и на странице про systemctl.

Если вы ведёте несколько компьютеров, удобно хранить файлы .desktop в одном месте, например в личной папке с заметками, и копировать их в ~/.config/autostart на каждой машине. Так набор программ при входе одинаков везде, а изменения делаются один раз. Перед копированием проверьте пути в Exec: на разных системах программа может лежать в разных каталогах, а в случае snap и Flatpak команда запуска выглядит иначе, чем у обычного пакета.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
автозапускlinuxubuntudebiandesktop

Часто задаваемые вопросы

Читайте также