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 PathChangede usar um arquivo em vez de um diretório.
Quando instalei o serviço, executei: sudo systemctl daemon-reloade 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.pathsó 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
pathunidades são úteis apenas para ativar (iniciar) outras unidades. Aqui você provavelmente poderia criarsrv-restart.pathcomPathChanged=/opt/srv/lib/esrv-restart.servicecomExecStart=systemctl restart srv.service.