Как работает «Startup Applications»?

10

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

Я хочу знать это, потому что я хочу знать разницу между добавлением записи в этих местах:

/etc/rc.local 
/etc/profile  
/home/$USER/.profile

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

daltonfury42
источник

Ответы:

8
  • /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.
    

    По сути Multileser Runlevel означает, когда вы загружаетесь.

  • /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_profileтолько во время входа в систему.

    Источник

    Так что я думаю, что .profileисполняется, если ни один из них (по любой причине).

  • Наконец, ваш метод GUI, вероятно, помещает .desktopпусковые установки в/home/$USER/.config/autostart

    Это выполняется при входе пользователя в систему (я думаю, что вход в систему только через GUI - так startxбудет, но не ttyвход).

Мои местоимения Он / Он

Тим
источник
Команды .profile не будут выполняться при входе в GUI?
daltonfury42
@ user3073656 хммм, как называется приложение с графическим интерфейсом?
Тим
Извините, неосторожная ошибка! Ты был прав.
daltonfury42
@ user3073656 отредактировано
Тим
8

Любая среда рабочего стола, соответствующая спецификациям 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для запуска при запуске системы или, с недавних пор, с помощью systemd .

Takkat
источник
Добавление команд таким способом является наилучшим, поскольку это буквально не требует времени по сравнению с файлом .profile, в который мы добавляем наши команды запуска. Я проверил оба из них на моем Dell Inspiron 7560 с Ubuntu 16.04, и этот путь кажется лучше.
Jasser
Я также думаю, что это лучше, чем редактировать файл / etc / profile, так как он вызывается только для оболочек входа в систему, который происходит после запуска среды рабочего стола. Да, это тоже проверено. Я был прав.
Jasser