如果我这样做了:
sudo systemctl --user daemon-reload
它失败了,因为:
Failed to connect to bus: No such file or directory
是必要的"sudo“,因为这属于包安装。
发布于 2019-06-09 10:45:31
使用sudo
,您将systemctl --user
作为根..。但是,如果root在当时没有登录,那么根的每个用户都没有活动的D总线实例。
只有实际登录用户才有特定于用户的D总线实例正在运行。在这种特殊意义上,使用su
或sudo
不一定完全等同于真正的登录。如果您的Linux发行版有loginctl
命令,那么在没有任何参数的情况下使用它来查看哪些用户有活动会话(也就是说他们每个用户都有一个活动的D总线实例)。
--global
选项仅对systemctl enable
或systemctl disable
有意义。
如果希望在当前所有活动用户会话上运行systemctl --user daemon-reload
,则可能需要执行以下操作:
#!/bin/sh
for reloaduser in $(loginctl --no-legend list-users | awk '{print $2;}')
do
sudo -u $reloaduser systemctl --user daemon-reload
done
https://unix.stackexchange.com/questions/523865
复制相似问题