dbus与linux用户
开发时遇到过这样一个问题,写的两个程序之间能够好好的利用dbus通信。写个自启脚本开机自动拉起它俩时就无法通信了。
环境变量
- 写过dbus的都知道,跑程序的时候都要先设置dbus的服务变量
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
- 这个时候要注意,/run/user/ 的目录是为不同用户存在的
像我这里就分为 0 和 1000两个目录,其中1000就是普通用户的路径,而0则是root用户的路径。当你把原来手动拉起的程序,写在脚本里开机自启时此时的权限时root,应在脚本中配置环境变量DBUS_SESSION_BUS_ADDRESS=root权限时路径,平时手动拉程序配置当前登录用户的路径