Como reinicio um serviço Systemd quando um arquivo é alterado. Eu tenho um serviço Java que quero recarregar quando qualquer arquivo jar for alterado.
Esta é a minha configuração:
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/
Eu também tentei usar PathChanged
e usar um arquivo em vez de um diretório.
Quando instalei o serviço, executei: sudo systemctl daemon-reload
e sudo systemctl enable srv
Obrigado!
Parece que se você nomear o mesmo que o serviço (com .path), o arquivo de caminho se refere ao mesmo serviço: freedesktop.org/software/systemd/man/systemd.path.html, no entanto ... não sei se apenas iniciar um serviço ou até reiniciá-lo se já estiver em execução
—
bloqueando
Pelo que entendi nos documentos,
—
Michał Politowski 26/01
srv.path
só pode fazer o equivalente a systemclt start srv.service
, portanto, para automatizar as reinicializações, você precisará de outro serviço, que, quando iniciado, reinicia o serviço.
Você precisa iniciá-lo
—
Michael D.
systemctl start srv.path
- e começar com o bootsystemctl preset srv.path
Relevante: github.com/systemd/systemd/issues/4324
—
Michał Politowski
path
unidades são úteis apenas para ativar (iniciar) outras unidades. Aqui você provavelmente poderia criarsrv-restart.path
comPathChanged=/opt/srv/lib/
esrv-restart.service
comExecStart=systemctl restart srv.service
.