如何与upstart一起启动GUI应用程序?

如何与upstart一起启动GUI应用程序?

我有一个 GUI 应用程序。我想自动启动这个应用程序。当它出现故障或意外关闭时,我想重新打开该应用程序。

我尝试使用 upstart 脚本,但是尽管 upstart 的服务没有问题,但 GUI 应用程序未使用 upstart 脚本启动。它说无法连接X服务器..

我是否应该添加或更改一些设置以使用新贵打开,或者有什么方法可以在发生意外退出或关闭时自动打开 GUI 应用程序(不仅仅是登录后一次,我的意思是不使用启动)?

编辑:这是我目前对暴发户的步骤:

我正在尝试在 CentOS 上使用 upstart 脚本启动 GUI 应用程序。我的测试脚本位于 /etc/init/ 文件夹。

start on desktop-session-start
stop on desktop-shutdown

respawn

script
export DISPLAY=:0
sleep 5
exec /.1/Projects/UpstartTest/start.sh &

end script

start.sh 脚本正在运行 GUI 应用程序的二进制文件。

重新启动我的电脑后。当我输入:

[root@mg-CentOS ~]# initctl status test
test stop/waiting

所以我的暴发户没有运行。当我打字时

initctl start test

手动它工作正常,没有任何问题。

如何在用户登录(桌面启动)后运行这个新贵脚本?

答案1

Upstart 可能不是启动 GUI 应用程序的最佳方式,因为它是为启动守护进程而设计的。但是,如果遵循正确的启动顺序(需要在启动 GUI 应用程序之前启动 X 服务器),您仍然可以使用它。

为了避免“无法连接到 X 服务器”错误,您需要在启动脚本中设置 DISPLAY 变量(并确保应用程序以运行 X 服务器的同一用户身份运行)。您可以通过以下方式执行此操作:

export DISPLAY=:0.0

相关内容