0

所以,我已经阅读了移植指南(https://wiki.tizen.org/wiki/Porting_Guide)。有一个名为“Tizen Bootup Overview”的部分。本节说明 systemd 守护程序的用户实例已运行。当我运行模拟器时,我可以看到它,ps aux | grep systemd并且我看到它是由 user 运行的app。但是当我systemctl --user list-unitsapp用户身份输入时,我会收到以下消息Failed to issue method call: Failed to execute program /bin/false: Success。但是,当我/usr/lib/systemd/systemd --user &app用户身份输入并且仅调用 list-units 方法时,它运行正常。请问我对跑步有什么不明白的地方systemctl --user list-units

据我了解,DBus 服务文件已经将 /bin/false 作为指定的可执行文件,以避免systemd --user意外激活 DBus。但是看看systemctl我看到的来源,当使用--user选项运行时,它会尝试连接到 DBus 以"unix:path=$XDG_RUNTIME_PATH/systemd/private"

我对 systemd 和 dbus 都很陌生。我尝试/usr/lib/systemd/systemd --user &在我的程序连接到 systemd 之前调用它并且它工作,但 systemd 开始执行用户目标。我连接到 DBus dbus_bus_get(DBUS_BUS_SESSION, &err)(DBUS_BUS_SESSION是连接到用户实例,正如我通过查看来源了解的那样systemd & Co)

PS:Tizen 使用systemd v43

提前致谢。

对不起我的英语不好。

4

1 回答 1

0

答案是:要连接到 systemd 的用户会话:

$ su -

# su - app

app$ export XDG_RUNTIME_DIR=/run/user/app

app$ systemctl --user status default.target

于 2013-10-25T06:38:20.897 回答