Является родителем оболочки всех процессов в Linux

Я пытался глубже понять оболочку и окружающую среду. Я читал о том, как если мы export VARIABLE=VALUE он будет доступен в подоболочке. Поэтому я хотел задать вопрос, который имел в виду.

Если я правильно понимаю, если мы выполним двоичную программу с помощью файла сценария, он сможет видеть переменные среды, потому что переменные среды, которые устанавливаются через терминал в linux (скажем, debian), видны всем программам, запускаемым файлом сценария ,

Поэтому мой вопрос и путаница в том, есть ли оболочка, которая является родительской для всех. Я немного смущен иерархией. Когда я открываю терминал в debian и export VARIABLE=VALUE , это будет видимо для всех файлов сценариев, даже если я запустил их, дважды щелкнув на рабочем столе?

Надеюсь, мой вопрос не является расплывчатым и подходит для serverfault.

2 Solutions collect form web for “Является родителем оболочки всех процессов в Linux”

Все процессы – будь то оболочка или иначе – образуют иерархию. Переменные среды передаются от родительского к дочернему процессу, если родитель не принимает явные действия для управления средой ребенка. В большинстве систем init – это процесс в корне дерева процессов, но ситуация может отличаться, например, во встроенных средах. Запуск pstree -a показывает все процессы в дереве.

Переменные среды, установленные дочерними процессами, не распространяются на родителей или братьев и сестер, поэтому экспорт переменной в окне терминала влияет только на процессы, запущенные из этого окна. Таким образом, ответ на ваш вопрос – нет.

Во многих словах; Нет, оболочка, которую вы запускаете как дочерний элемент вашего сеанса X11, не имеет возможности изменить среду сеанса X11, которая будет родительской (или, возможно, дедушкой) процессами, которые вы запускаете, дважды щелкнув на рабочем столе.

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

Конечно, это помогает только инструментам, которые предназначены для работы исключительно в среде, где эти средства доступны. В общем случае вы можете захотеть, чтобы ваша программа Java прочитала системный файл конфигурации, например, /etc/eat_memory_and_crash.conf (при условии, что ваша Java-программа называется eat_memory_and_crash , хотя в рамках экосистемы Java я полагаю, что это будет XML-файл).

  • chown все файлы на основе шаблона имени файла в текущем каталоге
  • Медленное выполнение сценария
  • Почему мой скрипт медленно использует все больше и больше памяти? Это из-за мидори?
  • Как печатать текст между первым вступлением пары строк?
  • Системный скрипт Serviced Not Echoing
  • Как мне выйти из SSH после запуска процесса с выходом, чтобы он работал?
  • Сценарий, который удаляет лишние пробелы между буквами в тексте
  • Открытие приложений на другом рабочем столе из командной строки
  • vim: выполнить BundleInstall без отображения интерфейса vim
  • Разбор файла в linux: сохранение только временных меток
  • Почему я получаю неожиданный конец файла в моем скрипте при использовании gzip?
  • Interesting Posts

    'netcat -e' не ретранслирует stdout

    Окно окна GNU переименовывает неудобство

    Обход / удаление ссылки на неисправный диск

    В чем разница между установкой в ​​fstab и установкой в ​​файловом менеджере

    Каковы практические последствия использования программ, какие процессы не являются потомками оконного менеджера?

    Обновление Yum не работает должным образом в centos

    просматривать вывод команды find с помощью команд cd и ls

    Почему мой первый ramdisk настолько велик?

    Задача сравнения регулярных выражений / шаблонов для извлечения данных

    Как использовать новые порты в старых версиях FreeBSD?

    Как узнать, что моя установка пакета rpm была успешной?

    Менеджер окон для телевизора

    Выполните условие IF из результата, который мы получаем с удаленного сервера

    DMP 3300MX-A встроенный ПК, debian 6.0 сжать, ядро ​​3.2, bios watchdog и harwdare reset

    Почему в выводе netstat не отображается мой IP-адрес клиента?

    Linux и Unix - лучшая ОС в мире.