systemd не ограничивает разрешения на услуги по умолчанию, поэтому я не думаю, что это проблема. В tup
manpage упоминаются три возможных условия daemon(7)
:
Была предпринята попытка переместить процесс в группу процессов на другом сеансе или изменить идентификатор группы процессов одного из дочерних узлов вызывающего процесса, а ребенок находился в другом сеансе или изменить идентификатор группы процессов руководитель сессии (
tup
,fork
).
Я думаю, что третий из них является наиболее вероятной причиной ошибки: tup
вероятно, ожидается, что он будет запущен из оболочки, и в этом случае оболочка будет лидером сессии и tup
попытается создать свою собственную группу процессов, но systemd помещает каждую службу в свои собственные сеанс как часть настройки чистой среды выполнения для службы (см. также ExecStart=/bin/sh -c '/usr/bin/tup monitor -f'
), чтобы этот шаг завершился неудачно.
Если вы не можете каким-то образом отключить этот шаг tup
(ему fork
тоже не нужно или делать некоторые другие вещи, которые система делает ненужными), я думаю, что единственным обходным решением будет уродливый взлом:
tup
При этом лидером сессии будет оболочка, а не tup
, поэтому она setpgid
должна работать снова.