Что случилось с dhcpd (isc-dhcp-server) в контейнере LXC? Почему это ничего не делает?

Я много раз пробовал на различных машинах Ubuntu: dhcpd исполняемый файл (установленный в /usr/sbin/dhcpd через пакет isc-dhcp-server) в контейнере LXC по-видимому единственная вещь, которую это делает при выполнении из командной строки состоит в том, чтобы выйти с кодом выхода 1.

Я хочу выполнить программу вручную для получения интерактивных сообщений об ошибках и проблем отладки в конфигурации.

Например, при выполнении $ dhcpd --version Я ожидал бы иметь, по крайней мере, версию как на хосте

$ dhcpd --version
isc-dhcpd-4.3.5
$ 

В контейнере LXC (но не в VirtualBox) dhcpd всегда ничего не производит к stdout, независимо от параметров командной строки.


править:

Я сравнил вывод выполнения strace dhcpd --version и на контейнере LXC и на хосте. Существует только одно различие в самом конце вывода. На госте LXC:

connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
write(2, "isc-dhcpd-", 10)              = -1 EACCES (Permission denied)
write(2, "4.3.5", 5)                    = -1 EACCES (Permission denied)
write(2, "\n", 1)                       = -1 EACCES (Permission denied)
futex(0x7f2637e2882c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

В то время как на хосте аналогичные чтения части:

connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
write(2, "isc-dhcpd-", 10isc-dhcpd-)              = 10
write(2, "4.3.5", 54.3.5)                    = 5
write(2, "\n", 1
)                       = 1
futex(0x7f95cadac82c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Я заполнил проблему против LXD об этой проблеме, см. https://github.com/lxc/lxd/issues/5378

1
задан 22 December 2018 в 13:42

1 ответ

Попытайтесь работать "strace dhcpd - версия", чтобы видеть, дает ли это больше информации.

Править:

write(2, "isc-dhcpd-", 10)              = -1 EACCES (Permission denied)

Это означает, что процесс не может записать в STDERR (дескриптор файла 2).

Поздравления, Вы на самом деле поразили ошибку Ubuntu 1 641 236 или 1 667 016 Заключений в кавычки от lxc выпуска 2930

Вы действительно имеете несколько обходных решений в наличии хотя: Используя ssh вместо "lxc должностное лицо" должен хорошо работать (поскольку ssh выделит свою собственную pts пару) Используя "lxc должностное лицо", и затем выполнение сессии "сценария" должно иметь тот же эффект как ssh, можно выключить tcpdump apparmor профиль symlinking, профиль к/etc/apparmor.d/disable/затем перезагружает apparmor в контейнере (или перезагружает его).

Последнее обходное решение, кажется, работает на обе ошибки

ln -s /etc/apparmor.d/usr.sbin.dhcpd /etc/apparmor.d/disable/
1
ответ дан 7 December 2019 в 15:09

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

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