pkill -9로 Firefox를 종료했음에도 불구하고 Firefox가 죽기를 거부하는 이유는 무엇입니까?

pkill -9로 Firefox를 종료했음에도 불구하고 Firefox가 죽기를 거부하는 이유는 무엇입니까?

Red Hat Linux 컴퓨터에서 Firefox를 종료하려면 다음 명령을 실행합니다.

[subhrcho@slc04lyo ~]$ pkill -9 -f firefox
[subhrcho@slc04lyo ~]$ 

그러나 응용 프로그램 -> 인터넷 -> Firefox를 통해 Firefox를 호출하려고 하면 다음과 같은 메시지가 나타납니다.

Firefox가 실행 중이지만 응답하지 않습니다. 새 창을 열려면 먼저 기존 Firefox 프로세스를 닫거나 시스템을 다시 시작해야 합니다.

답변1

귀하의 Firefox가 종료되었습니다. 오해의 소지가 있는 오류 메시지(*) 때문에 아직 실행 중인 것으로 생각됩니다. 이는 이전 결과일 가능성이 높습니다 kill -9.

kill -9반드시 필요한 경우가 아니면 사용하지 마십시오. 대부분의 경우 이는 꼭 필요한 것은 아닙니다.

귀하의 경우에는 다음과 같은 일이 일어나고 있다고 생각합니다.

  1. 파이어폭스가 ​​실행 중입니다.
  2. 훌륭해 pkill -9 -f firefox. 파이어폭스는 죽었어즉시(**). 따라서 프로필 디렉터리에서 잠금 파일을 삭제할 수 없습니다.
  3. 새로운 Firefox 프로세스를 시작합니다.
  4. 새로운 Firefox 프로세스는 잠금 파일이 여전히 프로필 디렉터리에 있는 것을 확인하고 다른 Firefox 프로세스가 아직 실행 중이라고 생각합니다. 그런 다음 오해의 소지가 있는 오류 메시지로 시작을 거부합니다.
  5. 당신은 오류 메시지에 혼란스러워하고 Firefox가 이전에 종료되지 않았다고 생각합니다.
  6. Firefox를 종료하려고 했으나 실행 중인 Firefox 프로세스가 없기 때문에 효과가 없습니다. 한편, 잠긴 파일이 여전히 존재하기 때문에 동일한 오해의 소지가 있는 오류 메시지가 계속 나타납니다.

Firefox가 종료되었다고 확신하는 경우( 확인 pgrep -fl firefox) 프로필 디렉터리에서 잠금 파일을 수동으로 삭제할 수 있습니다. 자세한 내용은 다음 mozillazine 문서를 참조하세요.http://kb.mozillazine.org/Profile_in_use.

(*) 이 오류 메시지는 실제로 다른 프로세스를 확인하지는 않지만 다른 프로세스가 실행 중임을 나타내기 때문에 오해의 소지가 있습니다. 단지 잠금 파일을 확인합니다. 따라서 오류 메시지는 파일이 잠겨 있다는 표시일 뿐입니다. 다른 프로세스에 꼭 필요한 것은 아닙니다.

(**) 스스로 제거되기 전에 정리할 기회를 주기보다는 즉시 살해했습니다. 당장 죽여도결과의 의도된 효과 kill -9는 일반적으로 사용자가 의도하거나 기대하지 않습니다.

이에 대한 자세한 지침을 읽어보세요.


배경 정보:

Firefox는 프로필 디렉터리에 잠금 파일을 유지합니다. 잠금 파일의 목적은 두 개의 Firefox 인스턴스가 동시에 동일한 구성 파일에 액세스하는 것을 방지하는 것입니다.

Firefox를 실행하면 먼저 잠금 파일을 확인합니다. 잠금 파일이 없으면 Firefox는 자체 잠금 파일을 배치하고 정상적으로 시작합니다. 이미 잠금 파일이 있는 경우 Firefox는 해당 프로필이 다른 Firefox 인스턴스에서 이미 사용되고 있다고 가정하고 이미 실행 중인 인스턴스가 있다는 잘못된 오류 메시지를 표시합니다.

Firefox는 잠긴 파일만 확인하기 때문에 오해의 소지가 있습니다. 실제 Firefox 프로세스가 실행 중인지 여부는 확인하지 않습니다. 때로는 실행 중인 다른 Firefox 인스턴스가 없는 경우도 있습니다. 잠금 파일만 남습니다.

Firefox를 정상적으로 종료하면(닫기 버튼 또는 을 마우스로 클릭 alt+f4) 바로 종료되지 않습니다. 대신, "종료 루틴"을 시작합니다. 여기에는 잠긴 파일 삭제가 포함됩니다. 프로세스를 관찰하면(예를 들어 를 사용하여 top) Firefox가 프로세스 목록에서 즉시 사라지지 않는다는 것을 알 수 있습니다.

Firefox를 사용하는 경우 kill(아니요 -9) Firefox가 "종료"되지 않습니다. 대신 신호를 보냅니다. Terminate라는 신호 SIGTERM는 일반적으로 "즉시 종료" 신호로 이해됩니다. 신호를 받은 후 Firefox는 위에서 설명한 종료 루틴을 시작합니다.

ctrl+c또한 터미널(Firefox가 실행되는 것과 동일한 터미널)을 누르면 신호를 보냅니다. 이번에는 SIGINT중단을 위한 것이었습니다. 이는 SIGTERM대부분의 최종 사용자 프로그램과 의미상 동일합니다. Firefox가 종료 루틴을 시작합니다.

(참고: 프로그램은 이러한 신호를 받은 후 종료할 필요가 없습니다. 일부 프로그램은 특정 작업을 수행한 다음 계속 실행됩니다. 그러나 이는 최종 사용자 프로그램에서는 일반적이지 않습니다.)

kill -9은 다르다. Firefox 브라우저가 신호를 수신할 수 없는 경우 kill -9. 종료 루틴은 시작되지 않습니다. 대신 더 이상 존재하지 않습니다. 그 자리에서. 중간단계. 디스크에 기록되지 않은 모든 내용은 손실됩니다. 대신 디스크에 있는 모든 내용은 디스크에 그대로 유지됩니다. 잠긴 파일은 디스크에 남아 있습니다.

파이어폭스, 사망즉시, kill -9종료 루틴을 시작할 기회가 없으므로 잠금 파일을 삭제할 수 없습니다. 그런 다음 Firefox를 다시 시작하면 잠금 파일이 표시되고 오해의 소지가 있는 오류 메시지와 함께 시작이 거부됩니다.

그렇기 때문에 꼭 필요한 것이 아니라면 사용해서는 안 되며 kill -9, 대부분의 경우에는 사용하지 않을 것입니다.

kill -9이 질문과 답변(및 의견)을 읽어보면 어떨까요 ?언제 -9 프로세스를 종료하면 안 됩니까?.

신호에 대한 추가 정보:https://en.wikipedia.org/wiki/Signal_(IPC)

답변2

내가 아는 한, Firefox는 lock실행될 때 호출되거나 유사한 파일을 생성합니다. ~/.mozilla/firefox/<your_profile>/정확한 동작은 모르지만 때로는 Firefox의 두 번째 인스턴스를 실행하지 못하거나 Firefox를 닫은 후 삭제되지 않은 경우 단일 인스턴스를 전혀 실행하지 못하는 경우도 있습니다. 파일을 삭제해 보세요. 도움이 될 것입니다.

답변3

내 경험에 따르면 시스템 모니터에 표시된 것처럼 Firefox가 최종적으로 완전히 종료되는 데 최대 1분(또는 그 이상)이 걸릴 수 있습니다. Red Hat에 대해서는 모르지만 시스템 모니터가 있으면 이를 사용하여 Firefox가 아직 실행 중인지 확인하고, 다시 실행되면 kill 명령을 실행할 수 있습니다. 이 작업이 가능해야 합니다.

답변4

kill -9 `pidof firefox`몇 초만 기다리십시오 .

관련 정보