
起動時に (実際にはユーザー ログイン時に)、systemd を使用して Java バックエンド プログラムを実行し、X サーバーを使用してメモリ内にレンダリング ウィンドウを作成したいと考えています。レンダリング ウィンドウは、GPU でボリューム レンダリングを行うために VTK によって作成され、そこからスクリーン ショットを取得します。
以下は/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 を自動的に実行する方法があるかどうか疑問に思っています。また、もう 1 つ質問ですが、すべてのコンピューターの環境を固定の DISPLAY 番号に設定しても問題ありませんか?
Ubuntu 16.04/18.04を使用しています。