Bir dosya değiştiğinde bir Systemd hizmetini nasıl yeniden başlatırım. Herhangi bir jar dosyası değiştiğinde yeniden yüklemek istediğim bir Java hizmetim var.
Bu benim kurulumum:
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/
Ayrıca PathChanged
bir dizin yerine bir dosyayı kullanarak ve kullanmayı denedim .
Ben hizmet yüklü zaman idam: sudo systemctl daemon-reload
ve sudo systemctl enable srv
Teşekkürler!
Görünüşe göre hizmeti (.path ile) aynı şekilde adlandırırsanız, yol dosyası aynı hizmete başvurur: freedesktop.org/software/systemd/man/systemd.path.html ancak ... bilmiyorum yalnızca bir hizmeti başlatırsa veya zaten çalışıyorsa yeniden başlatırsa
—
sıkışma
Belgelerden anladığım gibi
—
Michał Politowski
srv.path
, sadece eşdeğerini yapabilir systemclt start srv.service
, bu nedenle yeniden başlatmaların otomatik olarak başlatılması için hizmetinizi yeniden başlatan başka bir hizmete ihtiyacınız olacaktır.
Başlamanız gerekiyor
—
Michael D.
systemctl start srv.path
- ve önyüklemeye başlamalısınızsystemctl preset srv.path
path
birimlerin sadece diğer birimleri etkinleştirmek (başlatmak) için yararlı olduğu görülüyor . Burada muhtemelen yaratabileceksrv-restart.path
ilePathChanged=/opt/srv/lib/
vesrv-restart.service
ileExecStart=systemctl restart srv.service
.