Systemd

為帶有 GUI 的程序創建 ubuntu 服務單元文件的問題

  • August 19, 2020

我正在嘗試為具有 GUI 的程序編寫單元服務文件。

我有一個來自DigitalOcean的 ubuntu 伺服器,我使用 TightVNC 連接到它以顯示:2。

GUI 需要使用者名和密碼才能線上登錄我的帳戶。雖然這個程序是打開的,但它允許通過埠 4002 連接到他們的伺服器並使用 python 腳本線上請求數據。

該程序可以在終端中使用給定的使用者名和密碼進行身份驗證。下面將打開程序,自動登錄我的賬戶,並顯示程序GUI。

$ /home/user1/ibg/ibg username=*** password=***

我寫的單元文件如下:

[Unit]
Description=my service
After=network.target

[Service]
Type=simple
ExecStart=/home/user1/ibg/ibg username=*** password=***
Restart=always

[Install]
WantedBy=multi-user.target

該服務處於活動狀態且正在執行,但我收到以下消息,我認為這會阻止該服務真正發揮作用。我可以從我的 python 腳本不工作的事實中看出這一點。如果相反,我打開程序 GUI,並登錄到我的帳戶,python 程序可以正常工作。

No X11 display variable was set, but this program performed an operation that requires it.
at java.awt.SplashScreen.getSplashScreen(SplashScreen.java:117)

有人可以幫我解決這個問題嗎?

您是否嘗試將DISPLAY變數設置:2為您的服務ExecStart環境?

請參閱此伺服器故障問題

您可以選擇Environment=直接在單元文件的部分中使用標誌[Service],或者您可以使用該.conf問題中投票最多的答案中描述的文件方法。

引用自:https://unix.stackexchange.com/questions/605199