Gentoo

Gentoo 的 openrc 永遠掛在“記憶體服務依賴項……”

  • December 16, 2017

每當我啟動我的 gentoo 筆記型電腦時,openrc 就會永遠掛在“記憶體服務依賴項…”階段。這會導致我的電腦無法啟動,除非我使用 sysrq 密鑰將其殺死並手動啟動系統。

ps用作診斷工具時,我發現grepcut程序(腳本的子級)掛起,使用gendepends.sh0% CPU。在呼叫openrc default.

無論如何,我可以使用許多方法來解決這個問題,但我想知道最可能的原因並正確解決它。

當我嘗試手動解決依賴關係時,這是 pstree 的相關輸出:

 |                       |   `-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 腳本引起的,該腳本由於某種原因仍然存在於我的 initscripts 目錄中。刪除腳本解決了這個問題。感謝您的建議。

這些命令不會無處不在。它們一定是由一些初始化腳本呼叫的,但可能參數錯誤或期望不存在的數據。我可以想像他們等待一些沒有提供的輸入。

在您的輸出中ps -ef找到父程序 (PPID) 的 ID,這可能是罪魁禍首;您也可以嘗試pstree獲得更好的概述。嘗試找出呼叫命令的腳本行,也許您可以找出程序的原因,從而導致整個引導過程掛起。

如果您無法指出問題,則將輸出添加ps -ef到您的問題中(您可以將其縮短為掛起命令及其父級,直到 PID 0),以及 init 腳本(如果涉及)。

引用自:https://unix.stackexchange.com/questions/411039