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

おすすめ記事