抱歉标题令人困惑,
我目前的情况如下:我有一个正常的 systemd 服务正在运行(作为 root 用户和权限)。但是,该服务应该更改我的常规用户的某些 dconf 值。因此,我在sudo
以下帮助下从服务中写入 dconf 值:
sudo -u user dbus-launch dconf write /...
dconf 值的写入工作得很好。但是,写入 dconf 值后,服务本身无法将任何内容记录到 systemd 日志中(无法通过journalctl
或看到服务的日志输出systemctl status
)。我只能在执行 sudo dbus 命令之前看到日志输出。
服务日志的最后几行类似于:
sudo[1478]: root : TTY=unknown ; PWD=/ ; USER=user ; COMMAND=/usr/bin/dbus-launch dconf write /...
sudo[1478]: pam_unix(sudo:session): session opened for user used by (uid=0)
dbus-daemon[1493]: [session uid=1000 pid=1491] Activating service name='ca.desrt.dconf' requested by ':1.0' (uid=1000 pid=1489 comm=dbus-launch dconf write ...)
dbus-daemon[1493]: [session uid=1000 pid=1491] Successfully activated service 'ca.desrt.dconf'
sudo[1478]: pam_unix(sudo:session): session closed for user user
我该如何解决这个问题,以便在从提升的 systemd 服务中以普通用户身份运行 dconf 命令后不会失去记录输出的可能性?
编辑:我有一种不好的感觉,dbus 可能用于写入 systemd 日志,当我运行时,sudo -u user dbus-launch
它会混淆要使用哪个 dbus 会话(用户或根/系统会话)。那么我真的严重破坏了系统(d)吗?