
Мне интересно узнать, как работают «Автозагрузка приложений», доступ к которым можно получить из дока.
Я хочу это знать, потому что хочу понять разницу между добавлением записи в этих местах:
/etc/rc.local
/etc/profile
/home/$USER/.profile
и делая то же самое через это приложение GUI. Что меня озадачивает, так это то, что я не вижу, чтобы программа создавала какие-либо записи в вышеупомянутых файлах.
решение1
/etc/rc.local
# This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error.
По сути, многопользовательский уровень запуска означает момент загрузки.
/etc/profile
Этот файл вызывается только для оболочек входа в систему, поскольку это его специфическое назначение.
/etc/profile
, запускается всеми совместимыми с Bourne оболочками (включаяbash
иdash
) при запуске в качестве оболочки входа./home/$USER/.profile
# ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash if ~/.bash_profile or ~/.bash_login # exists.
Оба
~/.bashrc
и~/.bash_profile
являются скриптами, которые могут быть выполнены при вызове bash. Файл~/.bashrc
выполняется, когда вы запускаете bash с использованием интерактивной оболочки, которая не является оболочкой входа.~/.bash_profile
Только файл выполняется во время оболочки входа.Поэтому я думаю,
.profile
что его казнят, если ни один из них не был выполнен (по какой-либо причине).Наконец, ваш метод графического интерфейса пользователявероятноразмещение
.desktop
пусковых установок/home/$USER/.config/autostart
Это запускается при входе пользователя в систему (я думаю, только при входе в систему через графический интерфейс — так
startx
было бы, но неtty
при входе в систему).
Мои местоимения — Он / Его.
решение2
Любая среда рабочего стола, соответствующаяхарактеристики freedesktop(он же XDG) должен использоватьавтозапуск приложенийпри входе пользователя в систему или всякий раз, когда вставляется съемный носитель.
Для автозапуска приложения при входе пользователя в систему среда рабочего стола ищет .desktop
указанный там файл для запуска приложения. .desktop
Обычно эти файлы находятся в
$XDG_CONFIG_DIRS/autostart
Но мы также можем разместить их в следующих местах:
~/.config/autostart/ ## if $XDG_CONFIG_HOME is not set
etc/xdg/autostart/ ## if $XDG_CONFIG_DIRS is not set
В любом случае .desktop
файл, расположенный в , ~/.config/autostart
определяется как наиболее важный для запуска, тем самым переопределяя .desktop
файлы в других местах.
Ubuntu соответствует этой спецификации, и пользователи могут добавлять приложения с графическим интерфейсом в «Автозапуск приложений».
Приложение может автоматически запускаться независимо от рабочего стола из различных других мест, например, ~/.profile
из оболочки, /etc/rc.local
для запуска при старте системы или, в последнее время, с помощьюсистемд.