Эта опция была полностью удалена из ядра Mac OS X пять лет назад.
В XNU 792 (Mac OS X 10.4.x Tiger) он все еще существовал:
#define KERN_TFP_POLICY_DENY 0 /* Deny Mode: None allowed except privileged */
#define KERN_TFP_POLICY_PERMISSIVE 1 /* Permissive Mode: related ones allowed or privileged */
#define KERN_TFP_POLICY_RESTRICTED 2 /* Restricted Mode: privileged or setgid and realted */
В более позднем XNU 1228 (Mac OS X 10.5.x Leopard) он был удален:
#define KERN_TFP_POLICY_DENY 0 /* Deny Mode: None allowed except privileged */
#define KERN_TFP_POLICY_DEFAULT 2 /* Default Mode: related ones allowed and upcall authentication */
Поскольку 1
больше не является допустимым значением для этой опции, ваш вызов завершается с этим сообщением об ошибке.
Кажется, больше нет способа обойти это, поэтому вам придется использовать членство в группе procmod
.
В качестве обходного пути, посмотрите на man taskgated
. Он имеет параметр, который позволяет совместимость с Tiger, а также некоторые другие.
Принимает старое (Tiger) соглашение, что процессу с основной эффективной группой procmod или procview разрешено получать порты задач. Без этой опции этот устаревший режим не поддерживается.
Вам, вероятно, нужно изменить plist
и перезапустить этот сервис. Не уверен, что это возможно с вашим вариантом использования.