我有一个 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