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, PathChanged
eine Datei anstelle eines Verzeichnisses zu verwenden.
Bei der Installation des Dienstes habe ich ausgeführt: sudo systemctl daemon-reload
und sudo systemctl enable srv
Vielen Dank!
srv.path
kann 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
path
Einheiten nur zum Aktivieren (Starten) anderer Einheiten nützlich sind. Hier könnte man wohlsrv-restart.path
mitPathChanged=/opt/srv/lib/
undsrv-restart.service
mit erstellenExecStart=systemctl restart srv.service
.