FSH认为套接字和pid文件应该到/var/run但是,为了安全起见,只有root可以在这个位置创build文件和子目录。
一个常见的解决scheme是在/var/run为脚本创build一个子目录,然后用十个chmod命令创build一个子目录…但是当你不能访问root用户时该怎么办?
如果我没有root权限,我应该在哪里放置.socket(和一个.pid)?
在Arch Linux和(最新的)Debian等基于systemd的系统上,服务需要通过向系统添加一个tmpfiles.dconfiguration文件来告诉systemd他们想要一个在/run的目录。
默认情况下,这些文件存储在/usr/lib/tmpfiles.d ,尽pipe可以在/etc/tmpfiles.d中添加本地添加,这些文件会覆盖默认值。
tmpfiles.d工具可用于创build和清空目录,创build文件,符号链接,设备节点,套接字等等。
例如:
# cat /usr/lib/tmpfiles.d/php-fpm.conf d /run/php-fpm 755 root root
这指定创build一个目录/run/php-fpm ,模式为0755,由root和group root拥有。 该目录将在系统启动时或每当systemd-tmpfiles-setup服务重新启动时创build。 您也可以手动运行systemd-tmpfiles 。
还有很多其他的select。 检查tmpfiles.d文档的完整细节。