FORK 不适用于 root 用户以外的用户

FORK not working for users other than root user

我有一个 systemd 服务文件,我在其中设置我的用户和组不同于 root。 运行 的应用程序使用此服务文件。该应用程序在其代码中使用 fork() 来启动一个新进程。

问题是 fork 命令不起作用,即它无法创建子 PID。 运行以 root 用户身份运行服务时,不会发生同样的情况。请帮忙提出一些建议。是否有任何功能,我缺少添加到服务文件中?

CAP_SYS_ADMIN
CAP_SYS_RESOURCE
CAP_SETPCAP

已添加到我的服务文件中。

您应该首先检查 fork() 中的确切 return 代码以及 errno 的内容。您可能想使用 perror(),直接获取上次发生的错误的描述。

但是,您的错误不太可能来自 fork()。这可能是另一个未按应有方式处理的呼叫失败。