ファイルが変更されたときに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
ありがとう!
サービスと同じ名前を付けた場合(.pathを使用)、パスファイルは同じサービスを参照しているようです。ただし、freedesktop.org / software / systemd / man / systemd.path.html ...わかりませんサービスを開始するだけの場合、または既に実行中の場合は再起動する場合
—
ジャミング
私がドキュメントから理解している
—
ミチャウポリトウスキ
srv.path
ように、に相当することしかできないsystemclt start srv.service
ので、再起動を自動化するには別のサービスが必要になります。
あなたはそれを起動する必要があり
—
マイケル・D.
systemctl start srv.path
、それがブート時に開始しているために-systemctl preset srv.path
path
ユニットは他のユニットをアクティブ化(開始)するためにのみ役立つようです。ここsrv-restart.path
でPathChanged=/opt/srv/lib/
とsrv-restart.service
でおそらく作成できますExecStart=systemctl restart srv.service
。