systemdの使用中に小さな問題が発生しました。PrivateTmp
に設定されたディレクティブで実行されるphp-fpmサービスがありますtrue
。
php-fpmサービスのtmpディレクトリからいくつかのファイルをインポートする必要があるcronjobがあります。ただし、tmpファイルはにあるため、cronjobのスクリプトはphp-fpmサービスディレクトリにあるため、これらのファイルは見つかりません。/tmp/systemd-private-<something>
PrivateTmp
解決策として、JoinsNamespaceOf
PHP-fpmサービスとして設定されたディレクティブを使用してsystemdユニットを作成しました。図からわかるようにシステム文書、ディレクティブもありますPrivateTmp=true
。結局、これは.timer
デバイスで実行する必要がありますが、現在は手動で起動します。
私が動作していることを確認するために、/bin/ls /tmp
PHP-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]