
Ich möchte beim Start (eigentlich möglicherweise auch bei der Benutzeranmeldung) mit systemd ein Java-Backend-Programm ausführen, das den X-Server verwendet, um ein Renderfenster im Speicher zu erstellen. Das Renderfenster wird von VTK erstellt, um Volumenrendering mit einer GPU durchzuführen, und ich werde Screenshots davon erhalten.
das Folgende ist meine Servicedatei, die ich in /etc/systemd/system
das Verzeichnis gelegt habe.
[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
Nachdem ich mich über die GUI angemeldet habe, wird der Dienst nicht gestartet. Ich führe also einen Befehl aus, xhost +
um allen Benutzern den Zugriff auf die Anzeige zu ermöglichen, und starte systemctl start myservice
den Dienst manuell. Dann bekomme ich, was ich will.
Ich frage mich, ob es eine Möglichkeit gibt, myservice beim Anmelden automatisch laufen zu lassen. Und noch eine Frage: Ist es in Ordnung, die Umgebung für alle Computer auf eine feste DISPLAY-Nummer einzustellen?
Ich verwende Ubuntu 16.04/18.04.