Как отделить уже -запущенный процесс от его родителя?

В дополнение к уже данным ответам:

A sourceэквивалентно...

comd="ls"
eval "$comd"

... это...

source <(printf ls)

В случае lsсущественной разницы нет.

Но в случае команды, предназначенной для воздействия на вашу текущую среду(то, что вы обычно намереваетесь использовать при использованииsource)этот вариант будет делать это (, так как ваше 1-е решение с evalтакже будет )в то время как ваш второй подход просто влияет на среду подоболочки, которая не будет доступна после выполнения вашей строки кода.

0
19.11.2020, 00:48
1 ответ

Вы можете открыть файловые дескрипторы или WP из /proc, например. /proc/123/fd/0. В этот момент и MP, и CP будут иметь дескрипторы, открытые для stdin/stdout/stderr WP. Вы можете убить MP, чтобы убедиться, что это есть только у CP.

0
18.03.2021, 22:48

Теги

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