upstart로 GUI 애플리케이션을 시작하는 방법은 무엇입니까?

upstart로 GUI 애플리케이션을 시작하는 방법은 무엇입니까?

GUI 응용 프로그램이 있습니다. 이 애플리케이션을 자동으로 시작하고 싶습니다. 앱이 충돌하거나 예기치 않게 닫힐 때 앱을 다시 열고 싶습니다.

upstart 스크립트를 사용해 보았지만 upstart 서비스에는 문제가 없지만 GUI 응용 프로그램이 upstart 스크립트로 시작되지 않습니다. X 서버에 연결할 수 없다고 뜹니다..

upstart 열기를 사용하기 위해 일부 설정을 추가하거나 변경해야 합니까? 아니면 예기치 않은 종료 또는 종료 시 GUI 응용 프로그램을 자동으로 열 수 있는 방법이 있습니까(로그인 후 한 번이 아니라 시작을 사용하지 않음을 의미)?

편집: 현재 시작 단계는 다음과 같습니다.

upstart 스크립트를 사용하여 CentOS에서 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

관련 정보