Wie starte ich einen Systemd-Dienst neu, wenn sich eine Datei ändert? Ich habe einen Java-Dienst, den ich neu laden möchte, wenn sich eine JAR-Datei ändert.
Das ist mein Setup:
Service
[Unit]
Description=srv 0.1: Service's description
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/srv
ExecStart=/opt/srv/bin/srv
User=root
Group=root
[Install]
WantedBy=multi-user.target
srv.path
[Path]
PathModified=/opt/srv/lib/
Ich habe auch versucht, PathChangedeine Datei anstelle eines Verzeichnisses zu verwenden.
Bei der Installation des Dienstes habe ich ausgeführt: sudo systemctl daemon-reloadund sudo systemctl enable srv
Vielen Dank!
srv.pathkann es nur das Äquivalent von tun systemclt start srv.service, so dass Sie zum Automatisieren von Neustarts einen anderen Dienst benötigen, der beim Starten Ihren Dienst neu startet.
systemctl start srv.path- und beim Booten starten lassensystemctl preset srv.path
pathEinheiten nur zum Aktivieren (Starten) anderer Einheiten nützlich sind. Hier könnte man wohlsrv-restart.pathmitPathChanged=/opt/srv/lib/undsrv-restart.servicemit erstellenExecStart=systemctl restart srv.service.