$ time sudo dbus-daemon --system
real 1m30.111s
user 0m0.017s
sys 0m0.003s
Barebone ArchLinux 在 ArchLinux 上的 docker 中。
D-Bus 消息总线守护程序 1.12.16
尝试从 AURdbus-x11
,相同。每次。
编辑/详细信息:上面的sudo
调用需要 1:30 才能执行,但实际的 dbus-daemon 进程会立即生成,并在 1:30 期间和之后继续运行,成功(即它工作)。为什么我需要 dbus-守护进程?对于avahi-daemon
(更具体地说,能够运行avahi-browse --all
并发现我的网络上的内容)。
Edit2:似乎即使"一切正常",尽管速度很慢(avahi,网络服务发现等),容器也会变得非常慢。勉强运行sudo echo 'something'
需要 25 秒(这个数字可能与/usr/share/dbus-1/system.conf 中的 25000 超时有关)。就像感染一样。对于它的价值,在阅读更多之后,似乎需要dbus的挫败感不仅限于容器化的世界 - 很多这样的文章/社区。
我在各种 Docker 映像中遇到了这个问题,但并非总是如此。我更深入地挖掘了这个问题,并在 systemd 存储库上发现了一个有趣的评论。
我目前正在处理的图像systemd
passwd
和group
上配置:
$ cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
然后我删除了systemd
提供程序($ sed -i 's/ systemd//g' /etc/nsswitch.conf
),从dbus-daemon --system --nofork
开始时,90年代的挂起消失了。这真的是一个PITA来找出答案。
我还可以验证这是否是我正在维护的另一个 Docker 映像的问题/差异。