Es scheint, Sie betreiben Debian oder Ubuntu.
Wenn Sie ein aktuelles System mit systemd haben, erstellen Sie einfach die Datei systemd.unit, die /etc/systemd/system/java-test-app.unit
in diesem Beispiel aufgerufen wird .
[Unit] Description = Java test app After = network.target Wants = network.target [Service] Type = oneshot User = myuser Workdir = /home/myuser ExecStartPre = javac Testapp.java ExecStart = java Testapp [Install] WantedBy = multi-user.target
Ich empfehle, einen separaten Benutzer für die App zu erstellen ( myuser
in diesem Beispiel aufgerufen ), da das Ausführen von Anwendungen als Root normalerweise keine gute Idee ist.
Ich würde auch vorschlagen, die Anwendung aus der Java-Distribution zu entfernen, da das Verzeichnis /usr/lib
normalerweise vom Paketsystem und nicht vom normalen Benutzer verwaltet wird.
Versuchen Sie es nach dem Erstellen der Einheitendatei, um sicherzustellen, dass sie funktioniert.
systemctl daemon-reload systemctl start java-test-app
Um die Anwendung nach dem Systemstart starten zu lassen.
systemctl enable java-test-app
Sie können die App-Ausführung mit überprüfen
systemctl status java-test-app
Wenn Sie die App als Root ausführen möchten, aktualisieren Sie einfach die entsprechende Zeile in der Einheitendatei.