私は現在、タッチパッド付きのRaspberry Pi用のGUIを使用してアプリケーションを作成しています。現在開発環境があるPCからpiに新しいバイナリを転送するたびに、キーボードをpiに接続して実行アプリケーションを使用する必要がありますstartx /path/to/binary
。これはしばらくすると少し迷惑なので、SSHを介して開発PCでGUIを起動できることを願っています。
すでに実行中のXサーバーがある場合は、Xサーバーをリモートで起動する方法を既に知っています。残念ながら、これはクライアントプログラムが終了するとすぐに終了するため、Xサーバーを開いたままにすることができないため、これまで私には役立ちませんでした。ただし、単一のアプリケーションウィンドウのみが必要なため、デスクトップやウィンドウマネージャを実行したくありません。
今私の質問に答えます。 Xサーバーを開いたままにする方法は?これまで見逃していたオプションや他の回避策はありますか?それとも私の問題に対するより良い解決策がありますが、まったく関係がありませんか?
答え1
.xinitrc
たとえば、睡眠の終わりに無限の睡眠を追加できますかsleep 5000000
?&
コマンドの末尾に文字はありません。
通常、ウィンドウマネージャまたはセッションマネージャコマンドをここに置くことができますが、それらのうちの1つは必要ないと言われているので、Xserverをアクティブに保つには別の長期実行プログラムが必要です。
睡眠はリソースを消費しません。
答え2
Xサーバーを開いたままにする代わりに、Xサーバーを自動的に再起動できます。 Piで実行
while :; do startx /path/to/binary; done
これにより、バイナリを更新するたびにそれを終了でき、Xサーバーは新しいバイナリで再起動されます。
これを停止する必要がある場合は、次の条件を追加できます。
until [ -f /tmp/stop ]; do startx /path/to/binary; done
ループを終了したいときはいつでも、
touch /tmp/stop
その後、プログラムを終了すると再起動されません。