Gentooノートブックを起動するたびに、openrcは「キャッシュサービスの依存関係...」段階で永久に停止します。これにより、sysrqキーを使用してコンピュータをシャットダウンし、システムを手動で起動しない限り、コンピュータは起動しません。
ps
診断ツールとして、プログラム(スクリプトのサブプログラム)がCPU使用率が0%の状態で中断されるgrep
ことを発見しました。これらのプログラムを終了すると、起動プロセスを再度呼び出すことができます。cut
gendepends.sh
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ディレクトリにありました。スクリプトを削除すると問題が解決しました。ご提案いただきありがとうございます。
答え1
これらのコマンドは突然現れません。一部の初期化スクリプトによって呼び出される必要がありますが、無効なパラメーターがあるか、存在しないデータがある可能性があります。私は彼らが提供されていない入力を待っていると想像できます。
出力で原因となる可能性がある親プロセスのID(PPID)を見つけることができ、より良い概要を得ることもps -ef
できます。pstree
どのスクリプト行がコマンドを呼び出すかを調べます。プロセスと全体の起動プロセスが中断される理由を見つけることもできます。
問題を正確に見つけることができない場合は、ps -ef
initスクリプト(関連する場合)と一緒に質問に出力(停止コマンドとその親コマンド、最大PID 0に短縮することができます)を追加します。