"정지"되어 X 데스크탑을 응답하지 않게 만드는 Linux 응용 프로그램을 중단시키기 위한 고급 전략

"정지"되어 X 데스크탑을 응답하지 않게 만드는 Linux 응용 프로그램을 중단시키기 위한 고급 전략

응용프로그램(thunderbird)에 문제가 발생하면 때로는 응답하지 않는 상태가 되어 UI를 차단하고 로그인 프로세스(tty 터미널에서)를 차단하며 Ctrl-Alt-Backspace를 사용하여 X 세션을 다시 시작하지 못하게 하는 경우도 있습니다.

일반적으로 *nix 상자에서는 프로세스에 신호를 보내는 것만으로도 제어권을 다시 얻을 수 있는 충분한 액세스 권한을 얻을 수 있지만 이 경우 많은 RAM과 스왑을 사용하는 애플리케이션임에도 불구하고 모든 것이 손상됩니다.

Ctrl-Alt-F1을 사용하면 콘솔 및 로그인 프롬프트가 표시되고 루트 사용자 이름을 입력할 수 있지만 비밀번호 프롬프트가 반환되지 않아 꼼짝 못하게 됩니다.

Ctrl-Alt-Backspace를 누르면 X 세션이 다시 시작되지만 로그인 프롬프트가 표시되지 않으며 전원을 껐다 켜야 합니다.

키 입력을 낮은 수준의 "인터럽트 기능"(일반적인 의미에서 의미)에 바인딩하여 성가신 정지 프로세스를 일시 중지하여 수행하려는 작업을 확인할 수 있는 방법이 있습니까 strace?

일부 차단 프로세스는 반환되기 전에 일시 중지할 수 없다는 사실을 막연하게 알고 있지만 이 경우 차단 프로세스가 IO 리소스에 액세스하지 못하도록 차단되었다는 표시는 없으며 단지 어리석은 일을 하고 있는 것처럼 보입니다.

원래는 일부 bash 스크립트를 사용하여 Thunderbird와 관련된 모든 프로세스를 가장 낮은 우선 순위로 유지하고 조정하고 싶었지만 상황이 보이는 것만큼 나쁘면 새 프로세스가 CPU를 얻지 못할 것 같습니다.

Ctrl-Break 키는 내 컴퓨터의 데스크톱 세션 동안 다른 용도로 사용되지 않기 때문에 이를 사용하고 싶습니다.

기본적으로 데스크탑은 키 누르기 및 마우스에 (천천히) 반응하므로 바람직하지 않은 프로세스를 중단시키는 특정 범위의 실행 명령이 있습니다. 이 상황에서 어떤 명령을 사용해야할지 모르겠습니다.

답변1

내 생각엔 Thunderbird가 많은 메모리를 소비하는 것 같습니다. 프로세스를 종료하는 대신 쉘/콘솔을 얻을 수 있는 경우. 일반적으로 검색 색인을 다시 작성하거나 캐시에 수천 개의 이메일을 로드하는 경우 Thunderbird가 중단됩니다.

/procSIGTERM이 먼저 처리되도록 Linux oom Killer에서 우선순위를 설정할 수도 있습니다 .

먼저 썬더버드 프로세스를 찾아보겠습니다. (원하는 대로 사용하세요: pgrepps -ef|grep …)

bash$ pidof thunderbird
1439

이제 프로세스를 일시적으로 중지하려면 프로세스를 중지하면 됩니다. :)

bash$ kill -s SIGSTOP 1439
bash$ strace ... 

만족스러우면 "계속" 신호를 사용하여 프로세스를 계속할 수 있습니다. :)

bash$ kill -s SIGCONT 1439

또한 스레드인 경우 해당 스레드 사용을 고려할 수도 있고 tkill먼저 tgkill설치해야 할 수도 있습니다.

답변2

귀하의 질문에 대한 모든 세부 사항에 대한 답변이 될지는 모르겠지만 몇 가지 힌트를 드릴 것입니다.

일부 프로그램 오작동의 근본 원인이 무엇인지 알고자 할 때 콘솔에서 실행하는 것입니다(즉, GUI 프로그램을 실행하지만 콘솔에서 실행한다는 뜻입니다). 그러면 프로그램이 무엇을 하고 있는지 알 수 있습니다. Thunderbird 문제를 해결하는 방법에 대한 단서를 얻을 수 있습니다.

더 구체적으로 말하자면 , 당신이 언급한 것과 같은 상황이 발생했을 때 내가 하는 일은 컴퓨터에 SSH로 접속한 다음(예, Alt+F4를 눌러 tty1을 얻을 수는 없지만 로그인할 수 있습니다) 그런 다음 를 사용하거나 top, ps ax | grep thunderbird프로그램을 실행하면 데스크탑(X 및 열려 있는 다른 모든 창 포함)이 정상으로 돌아갑니다.

나는 그것이 당신이 질문에 그린 올바른 지점에 맞지 않는다는 것을 알고 있지만 내가 가진 것을 제공하고 있습니다.

답변3

나는 당신의 분석에 뭔가 문제가 있다고 생각합니다. 정말 아직도 싱글 코어 CPU를 사용하고 있나요? 단일 코어 상자에서 런어웨이 프로세스보다 더 기본적인 작업이 진행되고 있다고 의심됩니다. 하지만 무언가로 인해 시스템이 매우 느리게 실행될 수도 있습니다.

물론 문제가 발생한 후 진단을 실행할 수 있는 액세스 권한이 없는 것은 도움이 되지 않습니다.

ACPI/APM을 비활성화하고(클럭 스케일링이 어느 정도 영향을 미치는 경우) 실행합니다.공정 모니터링 프로그램이벤트를 캡처해 보세요.

당신은 사용을 고려할 수 있습니다지키는 개모니터 전용 모드(-q)에서 진단을 트리거합니다.

관련 정보