Linux에서 프로세스를 종료하는 데 사용할 수 있는 수많은 방법이 있습니다. 이 튜토리얼은 깨진 프로세스를 찾고 죽이는 방법을 알려줄 것입니다.
프로세스는 쉽게 고아가 될 수 있습니다. 고의든 아니든 상위 프로세스가 충돌하고 하위 프로세스를 계속 실행 중인 상태로 둘 수 있습니다. 때때로 부모 프로세스가 완료된 자식 프로세스를 거두지 못해 좀비가 되는 경우가 있습니다.
이 두 프로세스는 모두 중단되어 수동 개입이 필요합니다. 작업 제어를 입력합니다. 손상된 프로세스를 종료하는 방법을 살펴보겠습니다.
몇 가지 명령을 살펴보겠습니다.
- 상단 (그리고 왜 htop 아마도 더 나을 것입니다)
- ps
- 사살
상단(검색 및 삭제)
모든 프로세스에 강제 종료 메시지를 보내기 전에 무엇이 있는지 알아야 합니다. 우리는 실행 중인 프로세스가 손상되었다고 가정하지 않으며 무엇을 찾아야 하는지 정확히 알고 있습니다. 이것이 바로 상단입니다. 을 위한. vim을 실행하자 백그라운드에서 팝업합니다.
vim
자, 이제 정상적으로 상호 작용할 수 없는 프로세스가 있습니다. 상단을 실행해 봅시다. . 정상적인 출력은 도움이 되지 않으므로 필터를 실행하겠습니다.
- Shift+l 누르기
- vim 입력
- 엔터를 누르세요
상단
우리의 출력이 있습니다. 첫 번째 줄에는 가동 시간, 사용자 수 및 평균 부하가 표시되어 있습니다. 또한 열에 중요한 정보가 있음을 알 수 있습니다. 평범한 일상 나는 S를 보고 있다 , %CPU , 및 TIME+ . 프로세스가 Z(좀비) 상태에 있으면 종료할 수 있습니다. 프로세스가 100% CPU를 초과하면 오버런되고 종료되어야 할 수도 있습니다. 또는 프로세스가 며칠 동안 진행 중인 경우 다시 시작해야 할 수도 있습니다. 편집증일 수 있지만 대부분의 경우에는 필요하지 않습니다.
오늘 우리는 좀비를 사냥하고 고아를 찾는 두 번째 줄을 보고 있습니다. 이 예에서는 실행 중인 좀비 프로세스가 없으므로 "2개의 중지됨" 프로세스를 필터링합니다.
- o 누르기
- 유형:S=T
필터링 상단
이제 S=T의 프로세스로만 필터링했습니다. (state=stopped) 필터, 우리는 그들을 죽일 수 있습니다. 상단에서 k를 누를 수 있습니다. , 프로세스 PID 입력 , Enter 키를 누릅니다. 실행 중인 경우 종료하는 데 시간이 걸릴 수 있습니다. 대신 k를 누르세요. 다시 PID를 입력하고 신호를 9로 변경 .
완벽하지는 않지만 상단 창이 상태 창으로 실행 중이라면 이미 있는 것입니다. 정지 신호 대신 킬 신호를 보낼 수도 있습니다.
htop
알겠습니다. 인정하겠습니다. 탑과 크게 다르지 않습니다. 색상을 제외하고.
htop
색상이 너무 많습니다.
추신
추신, 프로세스 상태. 시스템에서 프로세스 정보를 보기 위한 멋진 기본 유틸리티입니다. 이 도구는 /proc의 파일을 읽습니다. . 대부분의 경우 다음을 사용하게 됩니다.
추신
- - , 모든 사용자에 대한 프로세스 표시
- -u , 프로세스 소유자 표시
- -x , 터미널에 연결되지 않은 프로세스 표시
ps -aux 실행 혼자서는 모든 것이 가능하지만 이것은 거의 도움이 되지 않습니다. 파이프를 grep에 연결하고 잃어버린 vim을 찾아봅시다.
ps-aux 명령
그리고 거기에 있습니다! 거기에 현재 grep 명령도 표시됩니다. 원하지 않으면 grep을 약간 변경하십시오.
grep을 사용한 ps-aux 명령
거기. 이제 vim을 찾으세요. 하지만 vim을 찾는 grep 프로세스를 보여주지 마세요. . 이제 죽입니다. 과정. killall부터 시작하겠습니다. , 그리고 죽일 시도 .
프로세스 종료(Killall &Kill)
좋습니다. 필요한 것이 있습니다. 프로세스 이름(vim ) 및 프로세스 ID(140464). 킬올 이름을 사용하고 죽이는 프로세스 ID를 사용합니다. 각각은 동일한 신호 세트를 보냅니다. HUP , 지능 , 사살 , 기간 , 및 중지 가장 일반적입니다. 더 알고 싶다면 kill으로 목록을 확인하세요 -l .
kill -l 명령
일반적인 신호를 살펴보겠습니다.
- 헉 , 신호 값 1. 전화 끊기. 전화 및 모뎀 라인 이후로 살아남은 오래된 용어. 대부분의 시스템에서 전화를 끊으면 데몬이 종료되지 않고 다시 시작됩니다.
- 지능 , 신호 값 2. 인터럽트. 일반적으로 프로세스와 상호 작용할 때 CTRL+C를 보내 인터럽트를 보낼 수 있습니다. kill -2를 전송하면 동일한 인터럽트 신호가 실행됩니다.
- 사살 , 신호 값 9. 죽입니다. 이것이 우리가 일반적으로 찾는 것입니다. 그러면 PID가 즉시 종료됩니다.
- 기간 , 신호 값 15. 종료합니다. 이는 프로세스 종료에 대한 정상적인 동작입니다. 프로세스에 친절하고 싶다면 이것이 당신이 그것을 우아하게 끝내고 싶은 방법입니다. 기본적으로 kill은 신호 15를 보냅니다.
- 중지 , 신호 값 17, 19, 23. 프로세스를 일시 중지합니다. 큰 디렉토리를 복사 중이고 일부 폴더를 제거하고 싶다고 가정해 보겠습니다. SIGSTOP을 보내고 폴더를 제거한 다음 SIGCONT로 재개하세요.
알겠습니다. 신호 값을 추가했습니다. 이는 신호의 숫자 값이며 킬에 사용할 수 있습니다. SIGHUP을 입력하는 대신 명령. 예:
- killall -9 vim
vim이라는 이름의 모든 것을 죽이려고 할 것입니다. killall을 사용할 때마다 나중에 프로세스가 성공적으로 종료되었는지 확인하는 것이 좋습니다.
killall -9 vim
남은 것이 있으면 kill -9로 수동으로 죽이십시오. 그 뒤에 프로세스 ID가 옵니다. 예:
- 죽임 -9 140464
결론
프로세스 종료에 대한 간단한 설명이 있습니다. 오버런 프로세스의 경우 맨 위로 시작합니다. killall 사용 그래픽 프로세스가 멈췄습니다. kill을 사용하여 나머지를 분리합니다. . 그러면 대부분의 문제가 해결됩니다.
의심스러운 경우 재부팅하십시오. 하기 전에 적절한 통지 절차를 따르십시오. 셸 명령에 대해 자세히 알아보고 Linux 기술을 연마하십시오.