Systemd-Daemon beim Booten wie System V ausführen

468
Luke Moll

Ich konfiguriere eine Java-App, die beim Booten mit jsvc ausgeführt wird, und folge diesem Tutorial, das systemv(init.d) verwendet. Ich verwende Ubuntu 16.04, das verwendet systemd, und es fällt mir schwer, genau das zu finden , was ich tun muss, um es beim Booten laufen zu lassen und beim Herunterfahren zu stoppen .

Bisher weiß ich, dass ich einen Dienst mit Type=forkingdem jsvc_execBefehl erstellen muss, mit dem die App-Gabeln gestartet / angehalten werden, sobald sie ausgeführt wurde.

Was muss ich noch hinzufügen, damit es ähnlich funktioniert wie das systemv-Skript aus dem Tutorial?

Vielen Dank

0

1 Antwort auf die Frage

1
Alex

Etwas wie das:

 [Unit] Description=Description of daemon After=network.target  [Service] #WorkingDirectory=/path/to/program/ #User= #Group= Type=forking  ExecStart=/path/to/program/program start ExecStop=/path/to/program/program stop #PIDFile=/path/to/pid/file.pid #RestartSec=15 #Restart=always  [Install] WantedBy=multi-user.target 
Genau das habe ich gesucht, danke! Eine kurze Frage, was ist die PID-Datei und wo finde ich sie? Oder spielt es keine Rolle, weil das "#" die Zeile kommentiert? Luke Moll vor 7 Jahren 0
#kommentiert die Zeile, unkommentieren Sie, was Sie brauchen Alex vor 7 Jahren 0
Im Arch-Wiki heißt es, wenn es angegeben ist, kann systemd den Hauptprozess nachverfolgen, wenn ich das aufnehmen wollte, wo würde ich die PID-Datei finden? Luke Moll vor 7 Jahren 0
`/ var / run / mydaemon.pid` Ich schätze mal, was ich im Tutorial gelesen habe ... Alex vor 7 Jahren 1
Vergessen Sie nicht, `sudo systemctl enable daemon.service` zu ​​verwenden, wo Sie` daemon.service` durch den Namen Ihrer Servicedatei ersetzen, sonst startet es nicht beim Booten :) Alex vor 7 Jahren 1
`systemctl start daemon` funktioniert gut, aber` systemctl enable daemon` spuckt eine Menge Fehler von `insserv` über` unvollständigen LSB-Kommentar` aus und benötigt einen `Default-Start`- und` Default-Stop`-Eintrag (auch wenn er leer ist) . Es gibt auch eine von `update-rc.d` am Ende, die besagt, dass Default-Start keine Runlevel enthält Luke Moll vor 7 Jahren 0
Versuchen Sie, alle Kommentare zu entfernen Alex vor 7 Jahren 0
In den Feldern ExecStart und ExecStop hatte ich das Skript, das ich zuvor in /etc/init.d/ geschrieben hatte, und fügte "# Default-Start: 2 3 4 5" und "# Default-Stop: 0 1 6" in _that_ Skript hinzu arbeiten Luke Moll vor 7 Jahren 0