Как понять результат трассировки, выполняемой внешней командой в bash?

Попробуйте

sysctl -w net.ipv4.conf.eth1.route_localnet=1

или

sysctl -w net.ipv4.conf.all.route_localnet=1

Возможно, вам придется дважды проверить, чтобы ядро ​​поддерживает route_localnet . Замените eth1 соответствующим образом.

Обратите внимание, что этот route_localnet отключен по соображениям безопасности.

1
03.03.2016, 19:25
1 ответ
clone(Process 9099 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f457c05ca10) = 9099
[pid  9099] clone(Process 9100 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f457c05ca10) = 9100
[pid  9099] wait4(-1,  <unfinished ...>
[pid  9100] execve("/bin/sed", ["sed", "s:\\([^/]\\)[^/]*/:\\1/:g"], [/* 66 vars */]) = 0

Два форка (в современных системах Linux форки выполняются с помощью системного вызова clone) вызваны тем, что bash оценивает вашу переменную PROMPT_COMMAND, о которой вы сказали

pwd2=$(sed "s:\([^/]\)[^/]*/:\1/:g" <<<$PWD)

Форки не связаны напрямую с полученным ранее сигналом SIGCHLD.

В руководстве по bash сказано:

Значение переменной PROMPT_COMMAND проверяется непосредственно перед тем, как Bash печатает каждый первичный запрос. Если PROMPT_COMMAND установлена и имеет не нулевое значение, то значение выполняется так же, как если бы оно было набрано в командной строке.

Внутри bash в конечном итоге вызывает parse_and_execute для оценки содержимого PROMPT_COMMAND. Bash старается минимизировать количество необходимых форков. Для простых утверждений, таких как pwd2=$PWD, форки не нужны. Для более сложных утверждений может потребоваться одна или несколько развилок. В вашем случае, $( ... ) приводит к форку, pid 9099, оболочки, которая затем оценит команду между скобками. Вызов не встроенной утилиты sed приводит к еще одной развилке, pid 9100, за которой следует execve команды /bin/sed.

Что здесь делает sed?

Похоже, он отрезает все символы, кроме первого, имени каждого каталога выше текущего рабочего каталога.

1
27.01.2020, 23:48

Теги

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