每次我查看 的日志时bootchart
,我都会注意到一个名为 的进程udevadm
,它大部分都是彩色的,好像它是一个僵尸进程。它伴随着modprobe
、wait-for-root
和udevd
。它们占用了我电脑启动时间的大约 25%,根据进程图上方的图表,这段时间似乎什么都没有发生。
如果有人能解释一下这些进程,它们的作用是什么,为什么udevadm
大多数时候都是僵尸进程,以及为什么在它们运行时似乎什么都没有发生,那就太好了。如果这是不自然的行为,我也希望有人能帮助我解决这个问题。
答案1
调用udevadm
可能来自/etc/init/udevtrigger.conf
Upstart 脚本。它执行udevadm settle
,它只是休眠,直到udevd
守护进程表示它已完成为您的硬件设置设备节点。因此它处于休眠状态并不表示存在问题。
在启动期间运行此命令的主要目的是在启动完成后生成 Upstart 事件。例如,打印子系统的 Upstart 脚本设置为在脚本完成后启动udevtrigger
,因为它需要访问已配置打印机的设备节点。
您提到的其他工具的工作方式类似:它们处于休眠状态,直到发生某个事件,然后返回。该wait-for-root
工具用于等待保存根文件系统的设备准备就绪,并modprobe
等待内核完成加载给定的内核模块。