Где хранятся команды запуска?


45

Когда вы заходите в «Startup Applications», вы видите список команд, которые выполняются при запуске, и вы можете добавить свои собственные.

Я хотел бы знать, где хранится этот список. Это где-то в gconf?

Есть две причины, по которым я хочу это знать:

  • добавлять команды программно
  • отключить некоторые команды (в Oneiric команды по умолчанию больше не отображаются)

Ответы:


49

В соответствии со спецификацией автозапуска приложений для настольных компьютеров , которой придерживаются Ubuntu и все основные настольные среды, такие как Gnome, LXDE, XFCE, приложения для запуска - это .desktopфайлы, хранящиеся в

~/.config/autostart

А также в глобальном масштабе, для всех пользователей, в

/etc/xdg/autostart

(это упрощение, реальные каталоги определяются спецификацией XDG Base Directory )

Функция включения / выключения предоставляется этим атрибутом в каждом .desktopфайле:

X-GNOME-Autostart-enabled=true (or false)

Если пользователь переключает состояние включения / выключения данного приложения (не удаляя его), которое находилось в системной папке, оно копируется в каталог пользователя, а затем атрибут X-GNOME-Autostart-enabledизменяется. Если пользователь удаляет данное приложение из списка, Hidden=trueфайл .desktop копируется в папку пользователя с атрибутом (или файл просто удаляется, если он присутствовал только в каталоге пользователя)

Файлы как в пользовательской, так и в системной папке не должны быть помечены как исполняемые. Разрешение по умолчанию - 644 (rw-r - r--). Разрешение на выполнение .desktopфайлов полезно только для программ запуска в области рабочего стола (рабочей области), поэтому они показывают свой значок и позволяют дважды щелкнуть мышью для запуска приложения. Для Dash, Launcher, Autostart и меню вообще исполняемый бит не имеет значения.


2
Спасибо, это было полезно. Те же пути работают и на Kubuntu.
CTD

@ctd: (в большинстве случаев) он должен работать и на других рабочих столах, таких как XFCE и LXDE, поскольку это стандарт, разработанный FreeDesktop.org и предназначенный для совместимости между рабочими столами.
MestreLion

Потрясающе! Это означает, что можно запускать приложения для монтирования зашифрованных контейнеров veracypt, и команда, включающая ключ, будет безопасной в зашифрованном домашнем каталоге пользователя. Им просто нужно было бы использовать visudo, чтобы разрешить права root-доступа для верификации без пароля для этого пользователя.
Норнинг

Ну, я искал и перепробовал множество альтернатив, но /etc/xdg/autostartу меня в Bionic Beaver (18.04) работал только настольный файл . Благодарность!
Артур Энрике Делла Фрага

1
@ArthurHenriqueDellaFraga, я только что проверил, и ~/.config/autostartвсе еще действует для Ubuntu 18.04. Попробуйте добавить любой лаунчер с помощью Startup Applications(найдите его в ваших приложениях), и он создаст там .desktopфайл
MestreLion

6

Я использую xfceи обнаружил, что большинство системных команд автозапуска, таких как

power-managers, gnome-keyring, ubuntuone, blueman etc

хранятся в /etc/xdg/autostartто время как большинство пользовательских автозапуска расположены в

$USER/.config/autostart Вы можете взглянуть на эти 2 места.


/ etc / xdg / autostart предназначены для системы и будут работать для всех пользователей
Павак Павел

4

В KDE это в

~ / .Kde / Autostart

Это было амортизировано, KDE Plasma теперь следует спецификации XDG. Общесистемный каталог запуска находится в /etc/xdg/autostartи пользовательские в~/.config/autostart

У меня есть скрипт, который запускает Krusader:

 #!/bin/bash
 krusader &

Не забудьте сделать сценарии, которые вы поместите в автозапуск, - чтобы они были исполняемыми.


2
Раньше у KDE были свои собственные каталоги автозапуска, но в настоящее время они следуют спецификации XDG. Возможно, ~/.kde/Autostartвсе еще работает, но для кросс-совместимости лучше использовать каталоги XDG
MestreLion
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.