FSH 表示套接字和 pid 文件应该转到/var/run
但是,出于安全目的,只有 root 可以在此位置创建文件和子目录。
一个常见的解决方案是创建一个脚本子目录/var/run
并对其进行 chmod ...但是当您无权访问 root 用户时该怎么办?
如果我没有 root 访问权限,我应该把 .socket (和 .pid)放在哪里?
答案1
在基于 systemd 的系统(例如 Arch Linux 和(最新的)Debian)上,服务需要通过向系统/run
添加配置文件来告诉 systemd 它们想要一个目录。tmpfiles.d
默认情况下,这些存储在中/usr/lib/tmpfiles.d
,但可以添加本地添加内容来/etc/tmpfiles.d
覆盖默认值。
这tmpfiles.d 工具可用于创建和清空目录、创建文件、符号链接、设备节点、套接字等。
例如:
# cat /usr/lib/tmpfiles.d/php-fpm.conf
d /run/php-fpm 755 root root
这指定创建一个目录/run/php-fpm
,模式为 0755,所有者为 root,组为 root。该目录将在系统启动时或每次systemd-tmpfiles-setup
服务重新启动。您也可以systemd-tmpfiles
手动运行。
还有许多其他选项可用;检查tmpfiles.d 文档了解详细信息。