作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 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/
我是一名优秀的程序员,十分优秀!