systemd [Install]部分を.pathファイルに入れる必要がありますか、それとも.serviceファイルに入れるべきですか?

systemd [Install]部分を.pathファイルに入れる必要がありますか、それとも.serviceファイルに入れるべきですか?

PathChanged新しいソース.jarファイルが送信されたときに私のサービスを再配布するようにsystemdを設定するためにサービスと連携してディレクティブを使用するパスファイルがあります。インストール部分は、サービスファイルではなくPATHファイルになければならないことを読んでいましたが、これは "systemctlを有効にするMYAPP"が不可能であることを発見しました。サーバーの再起動時にインストールが.pathファイルにのみ存在する場合、私のアプリケーションは正しく起動しますか?私が知る必要がある他の問題はありますか?

# myapp.path
[Unit]
Wants=myapp.service

[Path]
PathChanged=/srv/webapps/myapp/myapp.jar

[Install]
WantedBy=multi-user.target

ベストアンサー1

次に[Install]部品を挿入します。myapp.pathsystemctl enable myapp.path

なぜ入ってはいけないのですかmyapp.service

[Install]そのセクションを挿入すると、起動直後にmyapp.serviceサービスが開始されます。multi-user.targetあなたはおそらくこれをしたくないでしょう。myapp.serviceTriggeredになったときにのみ起動したいですmyapp.path

なぜ入るのmyapp.path

myapp.pathトリガーmyapp.service。したがって、myapp.path何でもしたい場合は始める必要があります。システムが起動するとすぐにそのパスの監視を開始するには、インストールセクションを追加することが解決策です。

なぜ動作しないのですsystemctl enable myappか?

拡張子を指定しない場合は、.service拡張子とみなされます。 .セクションが存在しないため、アクティブ化に失敗しました。 正しいことです。systemctl enable myappsystemctl enable myapp.service[Install]myapp.servicesystemctl enable myapp.path

おすすめ記事