RHEL5/6/7: Если NM_CONTROLLED не установлен, каково значение по умолчанию?

Одно из того, на что другие ответы здесь, кажется, не обращались напрямую, это то, что использование cat, как это не "бесполезно" в том смысле, что "порождается посторонний кошачий процесс, который не работает"; это бесполезно в том смысле, что "порождается кошачий процесс, который делает только ненужную работу".

В случае этих двух:

sed 's/foo/bar/' somefile
<somefile sed 's/foo/bar/'

оболочка начинает процесс sed, который читает из какого-то файла или stdin (соответственно), а затем выполняет некоторую обработку - он считывает, пока не попадет на новую строку, заменяет первую "фу" (если таковая имеется) на этой строке на "бар", затем печатает эту строку на stdout и петли.

В случае:

cat somefile | sed 's/foo/bar/'

Панцирь порождает кошачий процесс и процесс sed, а провода stdout кошки на stdin sed. Кошка считывает из файла несколько кило- или, может быть, мега-байтовых фрагментов, затем записывает их в свой stdout, откуда собака получает оттуда sdout, как во втором примере, приведенном выше. В то время как sed обрабатывает этот кусок, кот читает другой кусок и записывает его в свой stdout, чтобы sed работал над следующим.

Другими словами, дополнительная работа, необходимая при добавлении команды cat, это не только дополнительная работа по порождению дополнительного процесса cat, это также дополнительная работа по чтению и записи байтов файла дважды, а не один раз. Теперь, говоря практически и на современных системах, это не имеет большого значения - это может заставить Вашу систему сделать несколько микросекунд ненужной работы. Но если это для скрипта, который вы планируете распространять, потенциально людям, использующим его на машинах, которые и так недостаточно мощные, то несколько микросекунд могут сложиться за много итераций

.
1
10.10.2014, 17:29
1 ответ

На самом деле только NM_CONTROLLED = "no" (или это "false"?) Что-то делает.

Ответ «да» (или это «правда»?) - это то же самое, что и отсутствие линии вообще: для сетевых устройств, поддерживаемых NetworkManager, он будет управлять ими; для тех, кто неизвестен NetworkManager, он все равно проигнорирует их.

3
27.01.2020, 23:28

Теги

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