hostnamectl 显示错误:“无法创建总线连接:没有这样的文件或目录”

hostnamectl 显示错误:“无法创建总线连接:没有这样的文件或目录”

当我尝试hostname使用 ansible 模块进行设置时,我得到

TASK [set hostname] **************************************************************************************
fatal: [10.1.38.15]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=Failed to create bus connection: No such file or directory\n"}

有趣的是,当我 ssh 到计算机并尝试设置主机名时,hostnamectl我也收到错误。

bash-4.2# hostnamectl set-hostname foo.bar.com
Failed to create bus connection: No such file or directory

我相信这两个问题是相关的,但dbus表明它正在运行,

● dbus.service - D-Bus System Message Bus
   Loaded: loaded (/usr/lib/systemd/system/dbus.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2020-01-07 09:04:45 CST; 2h 28min ago

问题可能是什么?我使用的是 Centos 7。

显然,当我strace hostnamectl得到

connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/dbus/system_bus_socket"}, 33) = -1 ENOENT (No such file or directory)

我可以确认它/var/run/dbus/system_bus_socket不存在

ansible的玩法是

- name: set hostname
  hostname
    name: cp-1-2.foo.bar.com

答案1

我可以确认它/var/run/dbus/system_bus_socket不存在。

那么你的问题就在那里。 /var/run应该象征性地链接到/run,并且/run/dbus/system_bus_socket是作为 的结果而创建的dbus.socket

dbus.service顺便说一句,如果情况并非如此,那么再多的摆弄也无法解决其中任何一个问题。修复符号链接,或者重新初始化插座

答案2

您到 /var/run 的符号链接已损坏。重新创建符号链接,您应该可以开始了。

sudo rm /var/run -R
sudo ln -s /run /var
sudo reboot

相关内容