systemd PrivateTmp/JoinsNamespaceOf

systemd PrivateTmp/JoinsNamespaceOf

我在使用 systemd 时遇到了一个小问题。我有一个正在运行的 php-fpm 服务,其PrivateTmp指令设置为true.

现在有一个 cronjob 应该从 php-fpm 服务的 tmp 目录获取一些文件。但是,由于 tmp 文件位于 中,因此 cronjob 中的脚本无法找到这些文件,因为它们位于php-fpm 服务的目录中。/tmp/systemd-private-<something>PrivateTmp

作为解决方案,我创建了一个 systemd 单元,其中有一个JoinsNamespaceOf设置为 PHP-fpm 服务的指令。如图所示系统文档,它还有一个PrivateTmp=true指令。最后,这应该从.timer单元运行,但目前我只是手动启动它。

为了查看它是否正常工作,我/bin/ls /tmp从自己的 systemd 单元执行,假设它将显示 PHP-fpm 服务的 private-tmp 目录的内容。不幸的是,它只显示了/tmp根文件系统上的内容。

我曾尝试从服务单元运行各种 PHP 脚本,以查看 PHP 进程是否能够以某种方式意识到它应该查看PrivateTmpphp-fpm 服务的目录,但遗憾的是,它没有。

我在这里做的事情完全错误吗?或者该JoinsNamespaceOf功能没有像宣传的那样工作?

在我的系统单元下面:

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

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

答案1

PrivateTmp值应为[Service]单位部分。

相关内容