killall 명령이 프로세스의 인스턴스 하나만 종료하는 이유는 무엇입니까?

killall 명령이 프로세스의 인스턴스 하나만 종료하는 이유는 무엇입니까?

때로는 Google Chrome을 종료해야 할 때도 있습니다(2개의 창/인스턴스가 열려 있는 경우). 두 인스턴스 모두아니요스텔스 모드에서.

내가 한 일은: (Debian 8에서)

모든 크롬을 죽입니다&& 모든 크롬을 죽입니다

크롬 창 2개를 닫습니다.

하지만 나는 그것을 읽었다그들 모두를 죽일명령은 죽여야한다모든 인스턴스그냥 프로그램이 아니라 프로그램입니다.

그래서 나는 알고 싶습니다:이름에서 알 수 있듯이 killall이 모든 인스턴스를 죽이지 않는 이유는 무엇입니까?

답변1

두 가지 프로세스를 시도했는데 다음과 같이 작동합니다.

jai@jai-VirtualBox:/tmp$ sleep 100 &
[1] 3996
jai@jai-VirtualBox:/tmp$ sleep 60 &
[2] 3997
jai@jai-VirtualBox:/tmp$ pgrep -l sleep
3996 sleep
3997 sleep
jai@jai-VirtualBox:/tmp$ killall -v sleep
Killed sleep(3996) with signal 15
Killed sleep(3997) with signal 15
[1]-  Terminated              sleep 100
[2]+  Terminated              sleep 60

jai@jai-VirtualBox:/tmp$ pgrep -l sleep
jai@jai-VirtualBox:/tmp$ 

-v(verbose) 또는 (interactive) 재시도를 사용할 수 있습니까 -i?

답변2

top 명령을 사용하여 프로세스를 표시할 수 있습니다.

top

프로세스 종료

 kill PID_of_chrome

답변3

Chrome은 시작 시 여러 스레드를 생성한 다음 이후에 생성된 각 창 및/또는 탭에 대해 추가 스레드를 생성합니다.

기본적으로 killall은 특정 이름(귀하의 경우 "chrome")을 가진 모든 프로세스에 SIGTERM을 보냅니다. 그러나 신호를 처리할 수 있는 프로세스만 계속해서 신호를 처리합니다. SIGTERM 신호를 처리할 수 없는 항목은 닫히지 않습니다. killall -9를 사용하면 무조건 죽일 수 있습니다.

답변4

SIGTERM크롬 인스턴스 중 하나가 신호를 무시하고 확인을 위해 잠시 기다리는 것이 가능합니까 ? killall -9 chrome당신이 원하는 것을 할 수도 있습니다.

관련 정보