Вы здесь

Как автоматически запускать приложения, скрипты и команды при входе в систему Ubuntu 25.10?

Опубликовано: чт, 30/10/2025 - 00:58
автозагрузка в Ubuntu 25.10

В Ubuntu 25.10 больше нет приложения Startup Applications Preferences, которое позволяло управлять автозагрузкой приложений (так решили разработчики GNOME). Предлагается управлять автозапуском через НастройкиПриложения. Однако что делать, если вам надо запускать пользовательский скрипт при загрузке, или приложение с определенными аргументами?

Для решения этой задачи можно создать .desktop-файл и добавить его в папку ~/.config/autostart. Все, что вам понадобится, - это базовые знания системы и стандартный текстовый редактор.

Найдите каталог автозапуска

Запустите файловый менеджер и нажмите Ctrl+H для отображения скрытых файлов/каталогов. После чего перейдите в каталог .config, потом - в autostart

В Ubuntu этот каталог обычно существует (т.к. там лежит GNOME login keyring), однако в  других системах его может не быть, тогда надо его создать вручную или с помощью команды:

mkdir -p ~/.config/autostart

Создайте файл .desktop

Теперь для каждой команды или скрипта надо создать .desktop-файл. Для этого можно воспользоваться стандартным текстовым редактором, либо же использовать Nano, Vim или emacs - что душе угодно. Главное, чтобы он сохранял в формате plain text. 

Создайте файл следующего формата:

[Desktop Entry]
Type=Application
Exec=$HOME/scripts/backup.sh
Hidden=false
Name=Скрипт резервного копирования
Comment=Создает личный бэкап

Значения после символа = (знак равенства) отредактируйте на свои. Обратите внимание на регистр букв - это важно!

Здесь самая главная строка - которая начинается с Exec. Ее необходимо правильно структурировать и закрыть. Формат будет зависеть от ваших задач, поэтому вот несколько советов:

  • Exec=$HOME/scripts/backup.sh запустит скрипт напрямую, используя простой путь,
  • Exec=update-manager --install-all запустит простые команды с аргументами,
  • Exec=sh -c "sleep 5; $HOME/myscript.sh" - используйте sh -c в сложных случаях,
  • Exec=sh -c "command1 && command2" - используйте символы && для запуска цепочки команд,
  • Запускаете скрипт? Убедитесь, что у него есть права на исполнение.

создание .desktop-файла

Вот небольшой пример запуска скрипта:

[Desktop Entry]
Type=Application
Exec=sh -c "sleep 5; $HOME/scripts/mysync-helper.sh"
Hidden=false
Name=Запуск синхронизации
Comment=Запуск персонального скрипта синхронизации

Как видите, он запускается через sh -c, также применяется команда sleep с аргументом 5 для отсрочки выполнения на 5 секунд, после чего через символ ; идет запуск самого скрипта. Отсрочки бывают полезны для того, чтобы система гарантированно загрузилась.

Если вам надо, чтобы команда запускалась в окне терминала, добавьте строку Terminal=true в .desktop-файл. Тогда она будет запущена в стандартном системном терминале.

Вот пример .desktop-файла, который использует Ghostty (современный эмулятор терминала) для запуска btop (системный монитор):

[Desktop Entry]
Type=Application
Exec=sh -c "sleep 30; ghostty -e btop"
Hidden=false
Terminal=false
Name=Системный монитор
Comment=Запуск btop для мониторинга

После логина, он ждет 30 секунд, а затем открывает новое окно Ghostty и запускает Btop.

Несмотря на то, что Ghostty - это терминал, он не является системным терминалом по умолчанию. Поэтому мы его запускаем явно через команду в Exec, а не используем строчку Terminal=true.

Сохраните файл

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

После чего проверьте работу автозагрузки - перелогиньтесь или перезагрузите систему.

Напоследок

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

  • Измените параметр Hidden=false на true в .desktop-файле для временного отключения,
  • Удалите .desktop-файл из каталога ~/.config/autostart/ для полного отключения.

Конечно, это не единственный способ рулить автозагрузкой приложений, и, возможно, опытные пользователи предпочтут использовать менеджер systemd. Однако управление при помощи .desktop-файлов проще и легче в большинстве случаев.

Статья написана на базе этого материала OMG! Ubuntu.


Теги:

Комментарии

Аватар пользователя Max

Спасибо, дельная статья. Только не могу понять, в чем отличие операторов ; и && ?

Аватар пользователя ram32

Max, все очень просто:

; - выполняет команды последовательно, вне зависимости от результата предыдущей,
&& - выполняет следующую команду, только если предыдущая завершилась успешно (выдав код завершения 0).

Добавить комментарий