Systemd networking.service возвращается “(code=exited, status=1/FAILURE)” на коде ExecStartPre

Рассмотрение 'состояния' networking.service в Ubuntu 16.04.4, это показывает, что "ExecStartPre" перестал работать:

● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)

Drop-In: /run/systemd/generator/networking.service.d
       └─50-insserv.conf-$network.conf

Active: active (exited) since Tue 2018-04-10 00:47:02 EDT; 11h ago

Docs: man:interfaces(5)

Process: 735 ExecStart=/sbin/ifup -a --read-environment (code=exited, 
       status=0/SUCCESS)

Process: 731 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] 
       && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] 
       && udevadm settle (code=exited, status=1/FAILURE)

Main PID: 735 (code=exited, status=0/SUCCESS)

CGroup: /system.slice/networking.service

Рассматриваемая проблема находится в отказе кода:

 Process: 731 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] 
       && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] 
       && udevadm settle (code=exited, status=1/FAILURE)

После рытья в то, как networking.services сценарий является установкой, я нашел, что это - использование файл для установки среды за "$CONFIGURE_INTERFACES" в EnvironmentFile =-/etc/default/networking:

# Configuration for networking init script being run during
# the boot sequence

# Set to 'no' to skip interfaces configuration on boot
#CONFIGURE_INTERFACES=yes

Однако это отключено (прокомментированное), затем выполнив команду сценария вручную:

 $ sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ]

Производит вывод:

: 1: [: пропавшие без вести]

Я также получаю тот же результат, если я установил среду на "да" с

 export CONFIGURE_INTERFACES=yes

да: 1: [: пропавшие без вести]

Я не уверен, что точно результат этой строки кода, как предполагается, производит точно, чтобы иметь успешное выполнение. Заранее спасибо любому, который отвечает, как исправить это, или если это - что-то, что может быть проигнорировано.

0
задан 10 April 2018 в 13:43

1 ответ

Для получения дополнительной информации на (code=exited, status=1/FAILURE) состояние ExecStartPre= из networking.service см. https://unix.stackexchange.com/a/435190/281844.

Для записи это было зарегистрировано с Debian на https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=894759 и я отправили им патч для фиксации его, таким образом, он мог бы закончить тем, что пробился полностью к Ubuntu и в конечном счете был зафиксирован :-)

Относительно Ваших тестов, пытающихся эмулировать команду, Вам нужны одинарные кавычки там (даже при том, что вывод systemd не показывает им там.)

Это было бы корректно:

sh -c '[ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ]'

Можно также видеть содержание файла /lib/systemd/system/networking.service в Вашей системе или также выводе команды systemctl cat networking.service для точного ExecStartPre= команда, используемая той единицей.

2
ответ дан 30 October 2019 в 02:58

Другие вопросы по тегам:

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