systemctl --user不适用于www-data用户

乔恩·斯卡佩特格(Jon Skarpeteig)

systemctl --user 对于桌面用户来说似乎工作正常:

dev@dev-VirtualBox:~$ systemctl --user > /dev/null
dev@dev-VirtualBox:~$ echo $?
0

但是,当在www-data用户下运行相同的命令时,我得到了意外的响应

dev@dev-VirtualBox:~$ sudo su www-data -s /bin/bash
www-data@dev-VirtualBox:~$ systemctl --user > /dev/null 
Failed to connect to bus: No such file or directory 
www-data@dev-VirtualBox:~$ echo $? 
1

如何在systemctl --user这里启用

运行Ubuntu 16.04

乔恩·斯卡佩特格(Jon Skarpeteig)

因此,我终于能够找出谜题的缺失部分。感谢@JdeBP的一些出色提示,我得以确定:

  • systemd --user正在运行www-data
  • 在Ubuntu下DBUS_SESSION_BUS_ADRESS似乎被忽略了
  • 未设置XDG_RUNTIME_DIR

设置XDG_RUNTIME_DIR导出“ / run / user / $ UID”解决了我的问题

我遵循的步骤以获取预期的行为:

% sudo loginctl enable-linger www-data # Enable systemd --user service to start at boot
% XDG_RUNTIME_DIR="/run/user/$UID" systemctl --user # Access services as www-data without actually logging in

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章