Comment redémarrer un service Systemd lors d'un changement de fichier. J'ai un service Java que je veux recharger quand un fichier jar change.
Voici ma configuration:
srv.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/
J'ai également essayé d'utiliser PathChanged
et d'utiliser un fichier à la place d'un répertoire.
Lorsque j'ai installé le service, j'ai exécuté: sudo systemctl daemon-reload
et sudo systemctl enable srv
Merci!
srv.path
ne peut faire que l'équivalent de systemclt start srv.service
, donc pour automatiser les redémarrages, vous aurez besoin d'un autre service qui, une fois démarré, redémarre votre service.
systemctl start srv.path
- et le faire démarrer au démarragesystemctl preset srv.path
path
unités ne sont utiles que pour activer (démarrer) d'autres unités. Ici, vous pourriez probablement créersrv-restart.path
avecPathChanged=/opt/srv/lib/
etsrv-restart.service
avecExecStart=systemctl restart srv.service
.