Является родителем оболочки всех процессов в 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-файл).

  • Сценарий Bash для автоматического резервного копирования tar выбранных файлов и каталогов
  • Unalias в сценарии резервного копирования Mysql
  • SQLPLUS с циклами сценариев оболочки
  • используя sudo -u <имя> для запуска команд внутри сценариев оболочки
  • Как скопировать несколько файлов, но сохранить их расширения одинаково?
  • Добавить строку суффикса в конец каждой строки?
  • Добавление одного файла во второй до конца файла
  • Замените данные на определенный символ, затем измените значение после x строк
  • Выполнить скрипт оболочки из php, как пользователь root?
  • Найти строку в одном разделе файла с несколькими разделами
  • Динамическая переменная в скрипте KornShell
  • Форматирование файла в формате HTML
  • Linux и Unix - лучшая ОС в мире.