
В 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 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, все очень просто:
; - выполняет команды последовательно, вне зависимости от результата предыдущей,
&& - выполняет следующую команду, только если предыдущая завершилась успешно (выдав код завершения 0).
Добавить комментарий