首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gentoo的openrc永远挂在“缓存服务依赖项”中。

Gentoo的openrc永远挂在“缓存服务依赖项”中。
EN

Unix & Linux用户
提问于 2017-12-15 11:44:25
回答 1查看 1.3K关注 0票数 1

每当我启动gentoo笔记本电脑时,openrc就永远挂在“缓存服务依赖项”中.舞台。这将导致我的计算机无法启动,除非我使用sysrq键杀死它并手动引导系统。

使用ps作为诊断工具,我发现grepcut程序(脚本gendepends.sh的子程序)正在挂起,使用的是0%的CPU。在调用openrc default之后,关闭这些程序可以使引导进程继续正常进行。

无论如何,我可以使用许多方法来解决这个问题,但是我想知道最可能的原因并正确地解决它。

下面是pstree的相关输出,当我尝试手动解析依赖时:

代码语言:javascript
复制
  |                       |   `-doas /lib/rc/bin/rc-depend -u
  |                       |       `-rc-depend -u
  |                       |           `-gendepends.sh /lib64/rc/sh/gendepends.sh
  |                       |               `-gendepends.sh /lib64/rc/sh/gendepends.sh
  |                       |                   `-gendepends.sh /lib64/rc/sh/gendepends.sh
  |                       |                       |-cut -d = -f 2
  |                       |                       |-grep pid
  |                       |                       |-tr -d \\"
  |                       |                       `-tr -d [:space:]

gendepends.sh中,这些命令在任何地方都没有提到,所以我假设它们是从它所提供的另一个脚本中调用的。

编辑:我已经解决了这个问题。结果发现,它是由一个具有无法解决的依赖项的旧init脚本引起的,由于某种原因,该脚本仍然躺在我的initscript目录中。删除脚本解决了问题。谢谢你的建议。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-12-15 13:22:21

这些命令不是凭空挂起的;它们肯定是由init脚本调用的,但是参数可能是错误的,或者是不存在的数据。我可以想象他们在等待一些没有被提供的输入。

ps -ef的输出中,您可以找到父进程的ID (PPID),这可能是罪魁祸首;您还可以尝试pstree进行更好的概述。试着找出调用命令(S)的脚本行,也许您可以找出进程和结果是整个引导进程挂起的原因。

如果您无法指出这个问题,那么将ps -ef的输出添加到您的问题中(您可以将其缩短到挂起命令并将其父命令缩短到PID 0),如果涉及到init脚本,则将其缩短。

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

https://unix.stackexchange.com/questions/411039

复制
相关文章

相似问题

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