Як працюють "Запуск програм"?


10

Мені цікаво знати, як працюють "Запуск програм", до яких ви можете отримати доступ із док-станції.

Я хочу це знати, тому що хочу знати різницю між додаванням запису в цих місцях:

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

і зробити це за допомогою цього додатку GUI. Мене спантеличує те, що я не бачу, щоб програма створювала записи у вищезазначених файлах.

Відповіді:


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.
    

    По суті, багатокористувацький 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

    Це запускається при вході в систему користувача (я думаю тільки для входу в графічний інтерфейс) - так startxби, але не було ttyвходу).

Мої займенники - Він / Він


Чи не виконуються команди .profile при вході в інтерфейс GUI?
daltonfury42

@ user3073656 hmmm як називається програма GUI?
Тім

Вибачте, необережна помилка! Ви були праві.
daltonfury42

@ user3073656 відредаговано
Тім

8

Будь-яке середовище робочого столу, що відповідає специфікаціям freeesktop (він же 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 .


Додавання команд таким чином найкраще, оскільки це буквально не потребує часу в порівнянні з файлом .profile, куди ми додаємо наші команди запуску. Я тестував і те, і інше на своєму Dell Inspire 7560 з ubuntu 16.04, і цей спосіб здається кращим.
Джассер

Я також здогадуюсь, що це краще, ніж редагувати файл / etc / profile, оскільки він викликається лише для оболонок для входу, що після запуску робочого середовища. Так, тестували і це. Я був правий.
Джассер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.