FORK не работает для пользователей, кроме пользователя root - PullRequest
0 голосов
/ 18 мая 2019

У меня есть файл службы systemd, в котором я устанавливаю пользователя и группу, отличных от root. Этот служебный файл используется приложением для запуска. Приложение использует fork() в своем коде, чтобы начать новый процесс.

Проблема в том, что команда fork не работает, т.е. она не может создать дочерний PID. То же самое не происходит при запуске службы от имени пользователя root. Пожалуйста, помогите с некоторыми предложениями. Есть ли какие-либо возможности, которые мне не хватает, чтобы добавить в файл службы?

CAP_SYS_ADMIN
CAP_SYS_RESOURCE
CAP_SETPCAP

уже добавлены в мой служебный файл.

1 Ответ

0 голосов
/ 18 мая 2019

Вы должны сначала проверить точный код возврата от fork(), а также содержание errno.Возможно, вы захотите использовать perror(), чтобы напрямую получить описание последней произошедшей ошибки.

Однако очень маловероятно, что ваша ошибка исходит от fork().Вероятно, это сбой другого вызова, который не был обработан должным образом.

...