Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Linux에서 프로세스를 종료하는 방법

Linux에서 프로세스를 종료하는 데 사용할 수 있는 수많은 방법이 있습니다. 이 튜토리얼은 깨진 프로세스를 찾고 죽이는 방법을 알려줄 것입니다.

프로세스는 쉽게 고아가 될 수 있습니다. 고의든 아니든 상위 프로세스가 충돌하고 하위 프로세스를 계속 실행 중인 상태로 둘 수 있습니다. 때때로 부모 프로세스가 완료된 자식 프로세스를 거두지 못해 좀비가 되는 경우가 있습니다.

이 두 프로세스는 모두 중단되어 수동 개입이 필요합니다. 작업 제어를 입력합니다. 손상된 프로세스를 종료하는 방법을 살펴보겠습니다.

몇 가지 명령을 살펴보겠습니다.

  • 상단 (그리고 왜 htop 아마도 더 나을 것입니다)
  • ps
  • 사살

상단(검색 및 삭제)

모든 프로세스에 강제 종료 메시지를 보내기 전에 무엇이 있는지 알아야 합니다. 우리는 실행 중인 프로세스가 손상되었다고 가정하지 않으며 무엇을 찾아야 하는지 정확히 알고 있습니다. 이것이 바로 상단입니다. 을 위한. vim을 실행하자 백그라운드에서 팝업합니다.

Linux에서 프로세스를 종료하는 방법

vim

자, 이제 정상적으로 상호 작용할 수 없는 프로세스가 있습니다. 상단을 실행해 봅시다. . 정상적인 출력은 도움이 되지 않으므로 필터를 실행하겠습니다.

  • Shift+l 누르기
  • vim 입력
  • 엔터를 누르세요
Linux에서 프로세스를 종료하는 방법

상단

우리의 출력이 있습니다. 첫 번째 줄에는 가동 시간, 사용자 수 및 평균 부하가 표시되어 있습니다. 또한 열에 중요한 정보가 있음을 알 수 있습니다. 평범한 일상 나는 S를 보고 있다 , %CPU , 및 TIME+ . 프로세스가 Z(좀비) 상태에 있으면 종료할 수 있습니다. 프로세스가 100% CPU를 초과하면 오버런되고 종료되어야 할 수도 있습니다. 또는 프로세스가 며칠 동안 진행 중인 경우 다시 시작해야 할 수도 있습니다. 편집증일 수 있지만 대부분의 경우에는 필요하지 않습니다.

오늘 우리는 좀비를 사냥하고 고아를 찾는 두 번째 줄을 보고 있습니다. 이 예에서는 실행 중인 좀비 프로세스가 없으므로 "2개의 중지됨" 프로세스를 필터링합니다.

  • o 누르기
  • 유형:S=T
Linux에서 프로세스를 종료하는 방법

필터링 상단

이제 S=T의 프로세스로만 필터링했습니다. (state=stopped) 필터, 우리는 그들을 죽일 수 있습니다. 상단에서 k를 누를 수 있습니다. , 프로세스 PID 입력 , Enter 키를 누릅니다. 실행 중인 경우 종료하는 데 시간이 걸릴 수 있습니다. 대신 k를 누르세요. 다시 PID를 입력하고 신호를 9로 변경 .

완벽하지는 않지만 상단 창이 상태 창으로 실행 중이라면 이미 있는 것입니다. 정지 신호 대신 킬 신호를 보낼 수도 있습니다.

htop

알겠습니다. 인정하겠습니다. 탑과 크게 다르지 않습니다. 색상을 제외하고.

Linux에서 프로세스를 종료하는 방법

htop

색상이 너무 많습니다.

추신

추신, 프로세스 상태. 시스템에서 프로세스 정보를 보기 위한 멋진 기본 유틸리티입니다. 이 도구는 /proc의 파일을 읽습니다. . 대부분의 경우 다음을 사용하게 됩니다.

Linux에서 프로세스를 종료하는 방법

추신

  • - , 모든 사용자에 대한 프로세스 표시
  • -u , 프로세스 소유자 표시
  • -x , 터미널에 연결되지 않은 프로세스 표시

ps -aux 실행 혼자서는 모든 것이 가능하지만 이것은 거의 도움이 되지 않습니다. 파이프를 grep에 연결하고 잃어버린 vim을 찾아봅시다.

Linux에서 프로세스를 종료하는 방법

ps-aux 명령

그리고 거기에 있습니다! 거기에 현재 grep 명령도 표시됩니다. 원하지 않으면 grep을 약간 변경하십시오.

Linux에서 프로세스를 종료하는 방법

grep을 사용한 ps-aux 명령

거기. 이제 vim을 찾으세요. 하지만 vim을 찾는 grep 프로세스를 보여주지 마세요. . 이제 죽입니다. 과정. killall부터 시작하겠습니다. , 그리고 죽일 시도 .

프로세스 종료(Killall &Kill)

좋습니다. 필요한 것이 있습니다. 프로세스 이름(vim ) 및 프로세스 ID(140464). 킬올 이름을 사용하고 죽이는 프로세스 ID를 사용합니다. 각각은 동일한 신호 세트를 보냅니다. HUP , 지능 , 사살 , 기간 , 및 중지 가장 일반적입니다. 더 알고 싶다면 kill으로 목록을 확인하세요 -l .

Linux에서 프로세스를 종료하는 방법

kill -l 명령

일반적인 신호를 살펴보겠습니다.

  • , 신호 값 1. 전화 끊기. 전화 및 모뎀 라인 이후로 살아남은 오래된 용어. 대부분의 시스템에서 전화를 끊으면 데몬이 종료되지 않고 다시 시작됩니다.
  • 지능 , 신호 값 2. 인터럽트. 일반적으로 프로세스와 상호 작용할 때 CTRL+C를 보내 인터럽트를 보낼 수 있습니다. kill -2를 전송하면 동일한 인터럽트 신호가 실행됩니다.
  • 사살 , 신호 값 9. 죽입니다. 이것이 우리가 일반적으로 찾는 것입니다. 그러면 PID가 즉시 종료됩니다.
  • 기간 , 신호 값 15. 종료합니다. 이는 프로세스 종료에 대한 정상적인 동작입니다. 프로세스에 친절하고 싶다면 이것이 당신이 그것을 우아하게 끝내고 싶은 방법입니다. 기본적으로 kill은 신호 15를 보냅니다.
  • 중지 , 신호 값 17, 19, 23. 프로세스를 일시 중지합니다. 큰 디렉토리를 복사 중이고 일부 폴더를 제거하고 싶다고 가정해 보겠습니다. SIGSTOP을 보내고 폴더를 제거한 다음 SIGCONT로 재개하세요.

알겠습니다. 신호 값을 추가했습니다. 이는 신호의 숫자 값이며 에 사용할 수 있습니다. SIGHUP을 입력하는 대신 명령. 예:

  • killall -9 vim

vim이라는 이름의 모든 것을 죽이려고 할 것입니다. killall을 사용할 때마다 나중에 프로세스가 성공적으로 종료되었는지 확인하는 것이 좋습니다.

Linux에서 프로세스를 종료하는 방법

killall -9 vim

남은 것이 있으면 kill -9로 수동으로 죽이십시오. 그 뒤에 프로세스 ID가 옵니다. 예:

  • 죽임 -9 140464

결론

프로세스 종료에 대한 간단한 설명이 있습니다. 오버런 프로세스의 경우 맨 위로 시작합니다. killall 사용 그래픽 프로세스가 멈췄습니다. kill을 사용하여 나머지를 분리합니다. . 그러면 대부분의 문제가 해결됩니다.

의심스러운 경우 재부팅하십시오. 하기 전에 적절한 통지 절차를 따르십시오. 셸 명령에 대해 자세히 알아보고 Linux 기술을 연마하십시오.