在 Ubuntu 上使用 systemd 啟動程序

在 Ubuntu 上使用 systemd 啟動程序

我想在啟動時使用 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。

相關內容