在普通的 Ubuntu 中,我曾经为 Unix 套接字创建一个目录,如下所示(比如为 project foo
):
- 在以下位置创建一个 systemd 脚本:
/usr/lib/tmpfiles.d/foo.conf
- 将以下代码放入脚本中:
/run/foo 0770 <username> <groupname>
然后在下次重新启动时,/run/foo
将创建具有所需权限的目录。我这样做的原因是因为只有 root 可以写入到/var/run
-> 的哪些链接/run
,并且对于许多应用程序来说,在创建套接字之前放弃特权并更改用户是很常见的,因此它们无法写入/var/run
.
现在我正在使用 WSL2,带有 Ubuntu 20.04,并且systemd
不存在。一个人可以跳过很多圈来让它工作,但它们是有缺陷的。
如何创建一个具有所需权限的文件夹,该文件夹在重新启动后在任何已安装的应用程序(例如 nginx/postgresql)尝试创建其套接字(因此由于重新启动前的陈旧套接字而失败)之前被清除?
除了 init.d 服务,您可能会很幸运,将完整的脚本路径写入一个名为
/etc/rc.local
(您可能必须创建它)并使其可执行的文件像这样:
很
exit 0
重要!然后使其可执行:
那里的所有内容都将在系统启动时以root身份启动。