파일이 변경 될 때 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-reload
및 sudo 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