Сетевой мост Debian перестает работать случайным образом

Я не уверен, что понимаю источник вашего замешательства, но имейте в виду, что в Unix аргументы командной строки (fooи barизecho foo bar)и среда строки (FOO=barизenv - FOO=bar printenv)просто копируются ядром в адресное пространство процесса, где к ним просто обращаются, как и к любой другой памяти (через указатели и т. д., );они не передаются как файлы, которые могут быть прочитаны, записаны или отображены в память процессом, как это делают стандартные stdin, stdout, stderr или любые дополнительные файловые дескрипторы.

Это не какой-то закон природы, это просто то, как это работает в Unix. Можно возразить, что это архаично, непоследовательно и неэффективно (— для каждого процесса создается копия всего окружения, даже если он игнорирует все или большую его часть ).

Различные меры могут быть сделаны --в plan9 , строки окружения на самом деле являются файлами в /env(, что также означает, что они могут совместно использоваться между процессами ).

Кроме того, в Linux можно использовать хак LD_PRELOAD, чтобы обойти ограничение argv+env, передав все это через файл, созданный с помощью memfd_create.

1
27.01.2021, 10:20
1 ответ

Использование файла /etc/network/interfaces решило проблему.

0
06.04.2021, 20:22

Теги

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