什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同

2024-03-22

我想知道什么是kthread以及为什么它不占用任何内存并且没有打开的文件。我编写了一些代码,它将简单地以父子树格式打印当前正在运行的进程的 PID 以及一些附加信息,例如使用的 VMZ、RSS、线程、打开文件。 PID 2 的所有子进程命名为kthreadd中没有 VmSize 和 VmRSS/proc/[pid]/status文件。这/proc/[pid]/fd不包含任何打开的文件。

这些进程是什么,它们与 init (PID 1) 生成的正常进程有何不同。我(在一本旧书中)读到,交换器将生成 init PID1,而所有其他进程都是 PID 1 的子进程。这背后肯定有一个不同的体系结构(Linux 内核 3.7.10.1-16),我不知道,所以另一个问题是为什么 PID 2 是 PID 0 的子级而不是 PID 1 的子级。


内核线程不是 init 的子线程,因为它们可以在所有用户空间进程之前启动。

它们通常用于管理硬件,这就是它们直接由内核处理并具有高优先级的原因。

对于一个进程来说,它是 init 的子进程,它需要从 init 克隆,而 Kthreads 则不然,这就是为什么它们的父进程 PID 为 0(表示“无人”)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同 的相关文章

  • java进程停止整个进程树

    我正在使用 Java 运行时运行命令 包括某些 CVS 命令 I use process runtime exec cmd C cvs 在 Java 中运行 Process 的格式我需要有停止它的选择 为此 我使用 Java Process
  • Python os.path.dirname 更改目录时返回意外路径

    目前我不明白 为什么 pythonsos path dirname像它那样行事 假设我有以下脚本 Not part of the script just for the current sample file C Python Test t
  • 定义新的套接字选项以在 TCP 内核代码中使用

    我正在尝试向 TCP 内核代码添加一些功能 在tcp input c 我希望我实现的代码仅在某些情况下运行 我想添加一个控制标志 可以从用户空间应用程序设置它 我 认为我 需要添加一个新的套接字选项 以便我可以完成以下操作setsockop
  • 查看 Windows 上进程的打开文件处理程序

    我想查看 Windows 上进程的打开文件处理程序 以验证读取了正确的配置文件 ProcMon 和其他工具显示引用的模块 dll 我需要查看所有文件 例如 xml txt 等 的打开文件句柄 流程浏览器 http technet micro
  • 监控内核注册表更改

    人们能否给我指点 没有双关语 我需要研究的主题才能做到这一点 我并不是真正的 Windows 专家 但我很快就能掌握新概念 我看到了 Mark Russinovich 和 Bryce Cogswell 编写的进程监控程序 http tech
  • Linux内核中的模块间通信

    我有两个 Linux 内核模块 其中一个可以为另一个提供一些功能 但使用该功能并不是必需的 即使第一个模块不存在 第二个模块也可以 并且应该 工作 如果我只是从第一个模块导出函数并在第二个模块中使用它 则第二个模块依赖于该符号 并且在没有第
  • 将每个进程的 Node.js 内存使用量限制在 300MB 以下

    我们在单独的进程中运行测试 并且一些测试套件包含 20 多个文件 我们如何将 Node js 进程使用的内存量限制 而不是增加 到 300MB 以下 如果我们不限制内存 我们最多可以使用 20x500MB 大约 10GB 这太多了 我可以在
  • 关于僵尸进程和线程的问题

    自从我阅读一些有关进程和线程的新主题以来 我脑海中浮现出这些问题 如果有人能帮助我 我会很高兴 1 如果一个线程被标记为不可取消 然后该进程在临界区内被终止 会发生什么 2 我们的程序是否有操作系统已知的主线程 我的意思是操作系统是否给予程
  • C语言中什么情况下需要释放内存?

    我可能被误导了 但据我所知 操作系统会在程序退出或崩溃后清理内存 如果是这样 在程序结束时释放内存有多大用处 我知道 如果程序正在运行并且忽略释放 内存可能会变得 满 但是如果程序已经要结束并且操作系统释放了程序使用的所有内存 那么手动释放
  • USBInterfaceOpen总是报kIOReturnExclusiveAccess错误

    最近我遇到了这个问题 很头疼 我已经在这个问题上花了一个星期了 但仍然失败 希望您能帮我把这块石头踢开 非常感谢 我的问题 我们公司为iPhone生产USB存储设备 实际上这个存储设备中有一个SDCard 现在 我们想要开发一个 Mac 应
  • 从 C# .net 调用 python.py

    我在从 C 调用 python 脚本时遇到问题 我的 python 脚本根据参数 1 和参数 2 计算一个值并发送计算出的值 我无法获得计算值 比如说 我正在使用一个简单的 python 类并调用 C 以下是 python py impor
  • zlib.gzip 对于不同操作系统上的相同输入产生不同的结果

    以下代码 在 Node js v0 10 28 上 var zlib require zlib var buf new Buffer uncompressed zlib gzip buf function err result consol
  • 进程退出的问题

    假设我有一个 ID 为 1234 的进程 该进程在我的应用程序运行之前运行 我有这个代码 Process app Process GetProcessById 1234 MessageBox Show app MainWindowTitle
  • 如何启动第二个 Java 进程?

    如何启动第二个独立于平台的 Java 进程 理想情况下 它应该与当前运行的 Java 版本相同 有什么有用的系统属性吗 您可以使用java home系统属性来查找当前的 JVM String jvm new java io File new
  • Linux free显示内存使用率高但top却没有

    我正在 RedHat Linux 6 2 上运行free m它几乎显示了所有8GB used total used free shared buffers cached Mem 7989 7734 254 0 28 7128 buffers
  • “忙等待”与“睡眠”的权衡是什么?

    这是我之前问题的延伸 unix linux 套接字中的阻塞模式如何工作 https stackoverflow com questions 1107391 how does blocking mode in unix linux socke
  • 对内核模块代码进行单元测试是否可行?

    如果是这样我应该使用什么技术 我正在考虑使用 hippomock 因为它们可以用来模拟 C 方法 还有更好的方法吗 如果是这样 任何人都可以提供建议 或者您认为内核的单元测试是否太过分了 从 Linux 内核版本 5 5 开始KUnit可用
  • 如何在 C# 中异步读取结束进程输出?

    我在 C 中异步读取一个进程的输出时遇到问题 我在这个网站上发现了一些其他类似的问题 但它们并没有真正帮助我 这是我所做的 制定新流程 设置启动信息 文件名 参数 CreateNoWindow true UseShellExecute fa
  • Process.Start("explorer.exe");不会带回任务栏

    截至目前 我正在通过 WinForms 开发一个模拟操作系统 以用作电影的道具 运行该应用程序时 它会杀死 explorer exe 这样您就不会在拍摄过程中意外地显示 Windows 任务栏 问题是 关闭模拟操作系统后 我希望 explo
  • Python 上的 io.open() 和 os.open() 有什么区别?

    我意识到open 我一直在使用的函数是一个别名io open 以及导入 from os会掩盖这一点 通过以下方式打开文件有什么区别io模块和os module io open 是文件 I O 的首选高级接口 它将操作系统级文件描述符包装在一

随机推荐

  • 以前没有发生过的访问冲突

    我正在 P 调用 Graphviz如图所示 http implicitoperator com blog 2009 12 24 rendering an in memory graphviz image with c html 当我写那篇博
  • 此 C# 代码是否会因为寄存器或缓存中的值从未写回主内存而失败?

    在本文中 http msdn microsoft com en us magazine jj883956 aspx http msdn microsoft com en us magazine jj883956 aspx 作者指出 以下代码
  • Docker compose服务无法通过服务名称进行通信

    tldr 我无法通过其服务名称与 docker 组成的服务进行通信 以便向在网络容器中运行的 api 发出请求 我有一个单页应用程序 它向 json api 发出请求 它的 Dockerfile 如下所示 FROM nginx alpine
  • hiredis Redis 库是否为异步回调创建自己的线程

    我在多线程环境中使用 Redis 并且有一个关于它如何运行的问题 我在我的 C 应用程序中使用hiredis c 库 我的问题是 如果我在触发回调时使用异步模式 回调是否会在 Redis 客户端创建的另一个线程中处理 就像创建调用的线程不会
  • 如何使用 LWUIT - J2ME 在表单元格中添加组合框?

    我想在表格单元格中添加一个组合框以提供拖放选项 LWUIT 我已经使用了这个选项 private String strCmbBox 1 2 3 4 ComboBox comboRdoBox new ComboBox strCmbBox co
  • 是否可以像音乐应用程序或 iTunesU 那样将曲目标题添加到“正在播放控件”菜单中?

    我正在创建一个播放器应用程序 我已经实现了 remoteControlReceivedWithEvent 方法 并且可以通过此按钮更改播放状态 苹果指南 https developer apple com library ios docum
  • 点击标记时如何更改默认相机行为?

    在 Google Maps for iOS SDK 版本 1 2 中 点击标记的默认行为发生了变化 发行说明称 点击标记时的默认行为已更新 还可将相机平移到标记的位置 如何恢复旧行为 即不将相机中心平移到标记的位置 将以下方法添加到您的 G
  • 实现递归 ngFor 循环时清空 ng-template 的上下文数据

    我必须显示书籍类别的层次结构树 但在渲染的 html 中没有获取任何数据 似乎有问题ngTemplateOutput语境 尝试使用隐式和显式方法设置上下文 当明确设置时 例如let list list 类别列表的第一级已呈现 但子类别仍未呈
  • msbuild,如何设置环境变量?

    我正在尝试使用项目文件 例如 vcxproj 设置环境变量 我查看了属性函数 但似乎没有这样的功能 我知道有一种方法可以检索环境变量 但找不到如何设置它 我觉得应该有办法在项目文件中设置环境变量 从 MSBuild v4 0 开始 编码任务
  • 无法在 Vuejs 2 中使用 vuetable-2 检索数据

    我是 Vuejs 2 的新手 目前正在做一个项目 我在用着vuetable 2形成一个数据表Vuejs 2 我目前面临一个问题 无法使用属性 api url vuetable 2 检索数据 但是 我可以使用 Axios 和全局 Axios
  • 使用 JS 操作 HTML 中的 SVG

    我在 html 嵌入的 svg 图像中使用 javascript 构建 svg 元素时遇到问题 我创建了两个应该完全相同的文件 但其中一个是用 js 构建的 SVG html
  • 如何让 gradle 输出每个依赖项的依赖项哈希

    我有生以来第一次看到这样的情况 gradle compileJava check在本地运行良好 但是当我尝试使用 bitbucket 管道运行相同的命令时 我得到NoSuchClassDefError I do gradle user lo
  • 使用 ADO 在 IntraWeb 上共同初始化错误

    已经询问了邪恶交换 但一如既往 这没有帮助 我今天遇到这个问题 使用 IntraWeb 创建独立的 Web 应用程序时 当我尝试在浏览器中测试应用程序的会话时 我在 IDE 中遇到此异常 第一次机会例外 价格为 7C812A6B 异常类 E
  • 仅提取特定页面中使用的 css

    假设您有一个动态生成的网站 过去和现在都有太多人参与其中 并且您现在拥有一组包含超过 20 000 行 CSS 的共享样式表 它根本没有组织 有一些基于类和 id 的选择器 但也有太多基于标签的选择器 然后假设您有 100 个通过某个控制器
  • 按 R 中相似结果分组

    我想对相似的结果 不是唯一的 进行分组 但我不知道该怎么做 我的意思是 我有一个名为 name 的列的 df 它具有类似的结果 例如 ARPO ARPO S L ARPO SL 等 name address ARPO street 1 AR
  • sqoop导入或导出期间的不良记录处理

    我查看了 sqoop 导出操作提供的选项 但找不到任何处理不良记录的选项 例如 在大量记录中 偶尔可能会出现一个字符 而该字符应该是数字 有没有一种方法可以在 sqoop 中处理这些情况 而不会导致作业失败并在文件中提供错误记录 Sqoop
  • 如何将VM选项添加到jar文件中?

    我需要添加 Djava security policy myPolicyFile这样我的 RMI jar 就可以工作了 或者还有其他方法可以运行吗 如果你想在有人使用启动你的 jar 时添加 Djava jar 这是不可能的 因为不可能在
  • 如何制作可扩展的表格视图单元格?

    我想要一个表格视图单元格 当您点击它时 它的高度会增加以显示一些描述文本 当您再次点击它时 它会切换回较低的版本 这可能吗 如果可能的话 我将如何实现它 提前致谢 Use CGFloat tableView UITableView tabl
  • 使用 Spring MVC 框架清理用户输入

    我正在使用 spring mvc 框架开发 Web 应用程序 我想知道是否有任何最好的方法来清理用户输入或通用方法来清理 springs 中的所有用户输入以避免 XSS 和 Sql 注入攻击 您可以使用Filters在 Spring 框架中
  • 什么是 kthreadd 进程和子进程以及它与 init 和子进程有何不同

    我想知道什么是kthread以及为什么它不占用任何内存并且没有打开的文件 我编写了一些代码 它将简单地以父子树格式打印当前正在运行的进程的 PID 以及一些附加信息 例如使用的 VMZ RSS 线程 打开文件 PID 2 的所有子进程命名为