systemd PrivateTmp/JoinsNamespaceOf

systemd PrivateTmp/JoinsNamespaceOf

systemdの使用中に小さな問題が発生しました。PrivateTmpに設定されたディレクティブで実行されるphp-fpmサービスがありますtrue

php-fpmサービスのtmpディレクトリからいくつかのファイルをインポートする必要があるcronjobがあります。ただし、tmpファイルはにあるため、cronjobのスクリプトはphp-fpmサービスディレクトリにあるため、これらのファイルは見つかりません。/tmp/systemd-private-<something>PrivateTmp

解決策として、JoinsNamespaceOfPHP-fpmサービスとして設定されたディレクティブを使用してsystemdユニットを作成しました。図からわかるようにシステム文書、ディレクティブもありますPrivateTmp=true。結局、これは.timerデバイスで実行する必要がありますが、現在は手動で起動します。

私が動作していることを確認するために、/bin/ls /tmpPHP-fpmサービスのprivate-tmpディレクトリの内容が表示されたと仮定し、私のシステムデバイスで実行しました。残念ながら/tmp、ルートファイルシステムの内容のみが表示されます。

PHPプロセスがphp-fpmサービスのディレクトリを見つける必要があることを何とか認識できることを確認するために、サービスユニットでさまざまなPHPスクリプトを実行してみましたが、残念ながらそうではありませPrivateTmpんでした。

私はここで完全に間違ったことをしていますか?または、JoinsNamespaceOf機能が宣伝されたとおりに機能しませんか?

私のシステムデバイスの下:

[Unit]
Description=PrivateTmp test
JoinsNamespaceOf=php70-php-fpm.service
PrivateTmp=true

[Service]
Type=simple
ExecStart=/bin/ls /tmp

ベストアンサー1

値は単位部分でPrivateTmpなければなりません。[Service]

おすすめ記事