
젠투 노트북을 시작할 때마다 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으로 단축할 수 있음)을 추가하십시오.