首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux内核中,如何为守护进程分配pid (进程id)?

问在Linux内核中,如何为守护进程分配pid (进程id)?
EN

Stack Overflow用户
提问于 2012-01-22 01:03:15
回答 1查看 696关注 0票数 1

我研究了关于创建进程/线程的Linux内核代码(2.6.11),并遵循了do_fork()->alloc_pidmap()

当之前的pid达到最大pid时,alloc_pidmap似乎总是返回pid > 300,而实际上守护进程的pid总是小于300 (这是正确的吗?)。

守护进程是否使用alloc_pidmap()以外的函数获取其pid?如果是,这是否意味着守护进程不是使用do_fork创建的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-22 01:09:47

AFAIK pid是由内核分配的;您看到的300的限制(例如,kernel/pid.c中的#define RESERVED_PIDS 300私有)可能是因为在大多数系统上,在引导的早期已经派生了几个进程(例如,可能来自initrd )。

您可以通过使用init=/bin/sh从GRUB直接引导到内核来进行测试

一些进程是内核进程(没有用户代码,例如kworker或kauditd),它们不是由来自初始化或子代的分支启动的。它们可能是从内核内部的kthread_create开始的(没有任何系统调用)。

你应该解释一下你为什么问这个问题。你的问题是关于确定进程是否是守护进程?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8954846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档