systemdサービスのWorkingDirectoryとしてのシンボリックリンク


8

私はWorkingDirectory=/srv/ctr/currentシンボリックリンクであるサービスを持っています。

サービスは再起動時にシンボリックリンクの変更を取得しないようです。エラーログ/srv/ctr/releases/69は場所としてレポートしますが、を/srv/ctr/current指し/srv/ctr/releases/72ます。systemdに新しいディレクトリの変更をピックアップさせる方法はありますか?


試しましたsystemctl daemon-reloadか?シンボリックリンクの再読み取りをトリガーする可能性があります。
morloch 2015年

@morlochはい、私はそれを試しました。私が実行しているサービスはresqueです。パスがどういうわけかジョブ自体に格納されているのだろうかと思います。
Reed G. Law、

3
ExecStartPre=/bin/pwd -Pサービスに追加して、サービスをリロード/再起動し、ログを確認してください。少なくとも、それがsystemdなのかresqueなのかがわかります...
morloch '10

@morlochはうまくいきましたが、どういうわけかそれは正しいディレクトリを見つけています。
Reed G. Law

同じ問題がありました。SystemDはSymLinkを実際のパスに解決し、それを使用します。この動作を無効にする方法が見つかりません。これで、自分のものをシンボリックリンクターゲットに移動し、別の方向に新しいリンクを作成しました...
Martin Rauscher

回答:


2

おそらく追加してみてください:

Environment = PWD=/srv/ctr/current

(ところで、他の誰かが/srv/*彼らのサービスのために使っているのを見て本当に幸せです。)


古い質問ですが、これはCentos 8.1のsystemdでは機能しましたが、@ morlochのコメントでは機能しませんでした。
Yoopergeek

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.