gpt4 book ai didi

linux - 如何在停止状态下 fork Linux 进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:47 25 4
gpt4 key购买 nike

我正在使用 clone(2) 调用开始一项新任务。

曾经有 CLONE_STOPPED 标志,但它不再存在于当前内核中。

是否有任何技巧可以在 Stopped 状态下启动任务(等待 SIGCONT 实际运行)?

最佳答案

你不能,在最近的内核中没有办法做到这一点,除非你编写一个内核模块来做到这一点。

您可以在 kernel/fork.c (L1449) 中查看内核 v2.6.32 过去是如何执行此操作的:

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);
}

应该有可能(但可以说不是微不足道的?)在内核空间中编写一个包装函数来做类似的事情。

关于linux - 如何在停止状态下 fork Linux 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com