디렉토리가 변경 될 때마다 Systemd 서비스를 자동으로 다시 시작하십시오. Java 서비스가 있습니다. 이것은 내

파일이 변경 될 때 Systemd 서비스를 다시 시작하는 방법 jar 파일이 변경되면 다시로드하려는 Java 서비스가 있습니다.

이것은 내 설정입니다.

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/

또한 PathChanged디렉토리 대신 파일을 사용 하고 사용해 보았습니다 .

나는이 서비스를 설치할 때 나는 실행 : sudo systemctl daemon-reloadsudo systemctl enable srv

감사!



답변

Michal Politowski의 의견은 정확히 맞습니다. 새 아티팩트가 배포 될 때이 방법을 사용하여 서비스를 자동으로 다시 시작합니다. 매우 도움이됩니다.

명확하게하려면 다음이 필요합니다.

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-watcher.service

[Unit]
Description=srv restarter
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart srv.service

[Install]
WantedBy=multi-user.target

srv-watcher.path

[Path]
PathModified=/opt/srv/lib

[Install]
WantedBy=multi-user.target