ネットワークから受信したデータを受け取り、さまざまなアクションを実行する小さなサーバー プログラムに取り組んでいます。これらのアクションの 1 つは、システムで実行されている X サーバーとの接続を開き、キーの押下をシミュレートすることです。X 内の端末からサーバーを起動する場合は問題ありませんが、プログラムをシステム サービスとして起動し、クライアントから要求されたときに X と通信するようにしたいと考えています。
XOpenDisplay(NULL)
私が抱えている基本的な問題は、X 内部から開始されていないプロセスでの呼び出しが失敗することです。私が理解している限り、X の外部から X ディスプレイを開くことはできないため、考えられる最善の回避策は、ユーザーが X にログインしたときに開始され、シグナルまたはメッセージを待機する別のプログラムを作成することです。要求されたアクションを実行します。このヘルパー プログラムが実行されていないか、何らかの理由で失敗した場合、サーバーがクライアントにエラーを返すことができると想定しても問題ありません。
質問: 上記で説明したことは、(面倒ではありますが) 最善の解決策ですか、それとももっと良い方法がありますか? 実際、X の外から X ディスプレイを開く方法はありますか? ありがとう!