瑞芯微Rockchip开发者社区
直播中

李玲

8年用户 1323经验值
私信 关注
[问答]

用systemctl执行user.sh脚本时,两个进程能启动,但无法进行DBUS通信怎么办?


开发板采用systemd启动方式,定义了一个脚本user.sh,用于启动两个应用进程;
在telnet终端直接执行user.sh脚本,两个进程间能够正常进行DBUS通信
而用systemctl执行user.sh脚本时,两个进程能启动,但是无法进行DBUS通信?
systemctl启动脚本如下:
[Unit]
Description=MySQL Server
After=mysqld.service

[Service]
Type=forking
BusName=em***.manger.service
PermissionsStartOnly=true
ExecStart=/bin/sh /mnt/nandflash/user.sh
LimitNOFILE = 5000

[Install]
WantedBy=multi-user.target




回帖(2)

王伊

2022-1-6 11:12:13
有没有可能是脚本执行太早,通信还没开启,您可试试加个延时等待,再执行脚本
举报

罗丹

2022-1-6 11:12:21
systemctl启动的进程,读不到系统环境变量,DBUS_SESSION_BUS_ADDRESS,造成dbus session无法建立,在systemctl启动脚本的[Service]添加环境变量
Environment=DBUS_SESSION_BUS_ADDRESS=你的变量值
后启动正常。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分