我编写了一个运行良好的程序,但是当我将其作为服务运行时,它无法创建或写入文件和文件夹。
我的程序在我的主目录中创建文件夹,并在该文件夹中创建文件以存储通过 TCP 套接字传入的信息。
我确实在我的 .service 中使用了用户和组,但它只创建了没有任何权限的文件夹并且无法创建文件。
非常感谢您的帮助。
答案1
我通过在代码中正确设置 umask 解决了该问题。
澄清:我在创建文件或文件夹时遇到了问题,我以为问题是由于我的服务器程序是 systemd 服务,但后来我发现我错误地使用了 umask:
umask(0755); <- bad
umask(0022); <- solved my problem