Вы не можете, нет никакого способа, чтобы сделать это в последних версиях ядра, не, если вы пишете модуль ядра, чтобы сделать это.
Вы можете увидеть, как ядро v2.6.32 используется, чтобы сделать это в kernel/fork.c (L1449):
if (unlikely(clone_flags & CLONE_STOPPED)) {
/*
* We'll start up with an immediate SIGSTOP.
*/
sigaddset(&p->pending.signal, SIGSTOP);
set_tsk_thread_flag(p, TIF_SIGPENDING);
__set_task_state(p, TASK_STOPPED);
} else {
wake_up_new_task(p, clone_flags);
}
Должна быть обеспечена возможность написать функцию обертку в пространстве ядра, чтобы сделать что-то подобное (но, возможно, не тривиальным?).
Какова Ваша цель в этом? Если это для целей отладки, вы можете использовать 'ptrace' с' PTRACE_O_TRACEFORK' – Hasturkun
Поскольку API, который я реализую, требует, чтобы 'spawn_thread()' порождал поток в состоянии остановки, ожидая 'resume_thread()'. Я не проектировал его - я просто его реализую. – smoku