我有一个作为虚拟机运行的 Centos 7 映像(而不是 Docker 映像)。
当虚拟机启动时,它使用systemctl
启动多个服务,其中一个是我的应用程序,它尝试hostname
使用命令在虚拟机中设置:
hostnamectl set-hostname my_host
但是,它失败并出现以下错误:
Failed to create bus connection: No such file or directory.
我已经检查过dbus
了
ps aux| grep dbus
root 4555 0.0 0.0 112704 924 pts/4 S+ 11:29 0:00 grep --color=auto dbus
dbus 25493 0.1 0.1 58084 2236 ? Ss 10:54 0:03 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
另外,我可以运行systemctl
命令来启动和停止某些服务,但尝试启动firewalld
也会产生错误。
有想法该怎么解决这个吗 ?
编辑 我发现问题在于,system_bus_socket 位于 /run/dbus 中,而不是 /var/run/dbus 中。创建指向 /var/run/dbus 的符号链接可让 hostnamectl 成功运行。
但是,我的问题是,为什么system_bus_socket最初被放在/run/dbus中?