
我想在啟動時使用 systemd 運行 Java 後端程式(實際上可能是在使用者登入時),它將使用 X 伺服器在記憶體中建立渲染視窗。渲染視窗是由 VTK 創建的,用於使用 GPU 進行體積渲染,我將從中獲取螢幕截圖。
以下是我放在/etc/systemd/system
目錄中的服務文件。
[Unit]
Description= myservice
After=mysql.service
[Service]
User=root
Environment=DISPLAY=:0
Restart=always
Type=forking
ExecStart=/root/myservice/startup.sh
ExecStop=/root/myservice/shutdown.sh
[Install]
WantedBy=multi-user.target
透過 GUI 登入後,該服務無法啟動。所以我執行命令xhost +
讓所有用戶訪問顯示並運行systemctl start myservice
以手動啟動服務。然後我得到我想要的。
我想知道是否有任何方法可以讓 myservice 在登入時自動執行。另一個問題是,可以將所有電腦的環境設定為固定的顯示編號嗎?
我使用的是 Ubuntu 16.04/18.04。