无法从 upstart 启动 GUI 应用程序

无法从 upstart 启动 GUI 应用程序

作为我的应用程序“mydaemon”启动后的一部分,我想启动一个 GUI 应用程序“mygui”。我无法做到这一点。

我已经验证了用户权限的使用xhostDISPLAY变量设置正确。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 服务器尚未启动。我不太清楚如何修复它。

相关内容