我正在開發一個小型服務器程序,它接收從網絡收到的數據並執行各種操作。其中一項操作是打開與系統上運行的X服務器的連接並模擬按鍵。當我的服務器從X內部的終端啓動時,這很好,但我希望我的程序作爲系統服務啓動,系統引導,然後在客戶端請求時與X進行通信。Linux&C:從X之外與X服務器通信?
我遇到的基本問題是在沒有從X內部啓動的進程中調用XOpenDisplay(NULL)
失敗。據我所知,我無法從X之外打開X顯示器,所以我能想到的最佳解決方法是編寫一個單獨的程序,該程序在用戶登錄到X時等待信號或消息時啓動從服務器,然後執行請求的操作。如果這個幫助程序由於某種原因沒有運行或失敗,假設服務器可以向客戶端發送一個錯誤是完全可以的。
所以問題:我上面描述的是最好的(儘管是混亂的)解決方案,還是有更好的方法?事實上,有沒有辦法從X之外打開X顯示器?謝謝!
試試'DISPLAY =:0。/ program'。 – jweyrich
@jweyrich Gah,當我玩DISPLAY envvar時,我正在分配它,然後運行我的程序,但忘記了'export'並假設其他東西是錯的。這確實有效,但它仍然意味着我假定顯示實際上是「:0:'。 – shanet