Родитель оболочки всех процессов в Linux

Это находится, вероятно, в глобальной системе .zshrc или эквивалентный. Необходимо смочь поместить:

unalias ls
alias ls='ls -G -la'

Это удалит исходный псевдоним и затем создаст Ваш псевдоним

3
11.03.2015, 16:40
2 ответа

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

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

1
27.01.2020, 21:31

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

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

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

0
27.01.2020, 21:31

Теги

Похожие вопросы