作为我的应用程序“mydaemon”启动后的一部分,我想启动一个 GUI 应用程序“mygui”。我无法做到这一点。
我已经验证了用户权限的使用xhost
,DISPLAY
变量设置正确。conf 文件/etc/init/
如下所示
$ cat /etc/init/agentd.conf
description "my daemon"
author "me"
start on runlevel [2345]
stop on runlevel [016]
console output
kill timeout 60
respawn
respawn limit 3 15
# Allow some clean up time
post-stop script
env DISPLAY=:0.0
cd /home/me
./mygui
sleep 1
end script
script
cd /home/me
./myapp
end script
post-start script
env DISPLAY=:0.0
cd /home/me
./mygui
end script
有什么建议么?
在运行此脚本之前,xserver 已启动并运行。我在验证 lightdm 后明确启动了服务 myapp。我还对脚本进行了建议的更改,但 gui 似乎没有出现。有什么建议吗?
答案1
不要将“env DISPLAY=:0.0”放在脚本部分内,而要将其放在外面。然后将脚本部分更改为
post-start exec /home/me/mygui
post-stop exec /home/me/mygui
您可能还想将脚本{...}更改为
exec /home/me/myapp
我看到的另一个问题是,当您尝试启动 GUI 时,x 服务器尚未启动。我不太清楚如何修复它。