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

이 Linux 명령을 사용하여 오작동하는 프로세스를 강제 종료합니다.

가장 간단한 단어로 '프로세스'의 의미를 설명하면 시스템에서 모든 응용 프로그램이나 프로그램의 실행 중인 인스턴스입니다. 탐색, 터미널에서 작동하는 음악 듣기 등과 같은 여러 응용 프로그램을 동시에 실행할 수 있습니다. 이러한 응용 프로그램과 관련된 많은 백그라운드 프로세스가 사용자에 의해 실행됩니다.

시스템에서 실행되는 모든 응용 프로그램 또는 프로그램은 단일 응용 프로그램과 관련된 여러 프로세스를 생성합니다. 때로는 이것이 문제가 될 수 있으며 이러한 프로세스를 제거하는 것이 유일한 옵션입니다.

프로세스 '종료'는 Linux가 포그라운드 프로세스든 백그라운드 프로세스든 진행 중인 프로세스를 중지하기 위해 제공하는 유용한 옵션 중 하나입니다. 이 기사에서는 다음과 같은 명령을 검토합니다. 죽이다, 피킬 그리고 다 죽여 시스템의 모든 프로세스를 강제 종료합니다.

프로세스를 종료하는 이유는 무엇입니까?

이 튜토리얼을 진행하기 전에 프로세스 종료의 개념을 이해하는 것이 중요합니다. 살인은 개념을 표현하는 데 매우 잔인한 방법으로 보일 수 있지만 비유적으로 의미하는 것은 프로세스를 강제로 중단하는 것입니다.

이제 진행 중인 프로세스를 중단하거나 종료해야 하는 이유는 무엇입니까? 여러 프로세스가 백그라운드에서 실행 중인 경우 전체 또는 일부 프로세스가 오작동하여 시스템이 오작동할 수 있습니다. 오작동하는 프로세스가 잠시 동안 시스템을 정지시킬 수 있으므로 진행 중인 작업이 지연됩니다.

때때로 모든 오작동 프로세스를 종료하는 것이 시스템의 정상 상태를 복원하는 유일한 옵션인 것 같습니다. Linux에서는 다음을 사용하여 프로세스를 종료할 수 있습니다. PID 또는 프로세스 이름.

사용 pgrep 명령

대부분의 Linux 사용자는 그렙 명령. 그만큼 pgrep 명령은 유사한 줄에서 사용할 수 있습니다. 그렙.

pgrep 명령을 사용하면 다음을 표시합니다. PID 명령에 지정된 대로 실행 중인 프로세스의 이 명령은 사용하는 동안 매우 유용합니다. 피킬 명령.

일반 구문:

pgrep [옵션] [패턴]

와 함께 사용할 수 있는 중요한 옵션 pgrep 명령

옵션설명
-유특정 사용자가 소유한 프로세스 ID 나열
-씨일치하는 프로세스의 수를 센다.
-나프로세스 이름만 나열
-ㅏ프로세스 이름의 전체 경로 나열

의 사용을 보여줍시다. pgrep 예제를 사용하여 명령합니다.

pgrep -u gaurav 그놈

여기서 우리가 보고 싶은 피드 사용자 'gaurav'가 소유한 프로세스 gnome. 옵션 -유 당신이 나열 할 수 있습니다 피드 특정 사용자가 소유한 프로세스 중 이 경우 사용자 gaurav.

산출:

gaurav@ubuntu:~$ pgrep -u gaurav 그놈 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

이 튜토리얼을 진행하면서 pgrep 명령은 프로세스가 종료되었거나 여전히 실행 중인지 확인하는 데 도움이 됩니다.

이제 다음으로 이동합시다. 피킬 명령과 그 실행.

사용 피킬 명령

당신은 사용할 수 있습니다 피킬 Linux에서 프로세스 이름을 사용하여 프로세스를 종료하는 명령입니다. 혹시 모르시더라도 PID 일부 프로세스의 경우에도 다음을 사용하여 특정 프로세스를 종료할 수 있습니다. 피킬 명령.

프로세스는 사용하는 동안 전체 이름 또는 부분 이름으로 지정할 수 있습니다. 피킬 명령. 프로세스의 일부 이름을 입력해도 피킬 명령은 실행 중인 모든 프로세스를 명령에 입력한 일치하는 이름과 일치시킵니다.

통사론:

pkill [옵션][프로세스 이름_패턴] 

예시:

다음을 사용하여 현재 실행 중인 프로세스를 표시해 보겠습니다. 맨 위 명령. 당신은 또한 사용할 수 있습니다 추신 프로세스를 나열하는 명령입니다.

맨 위
상단 - 14:24:02 최대 3:12, 사용자 1명, 평균 로드: 0.29, 0.48, 0.58 작업: 총 221개, 실행 1개, 잠자기 172개, 중지 0개, 좀비 1개 %Cpu(s): 5.6 us, 1.0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB 메모리: 총 3928240, 무료 610456, 2233152 사용, 1084632 버프/캐시 28 사용 48 사용 없음 377:04 소용 1,187,268의 Mem PID의 USER PR NI VIRT RES SHR S %의 CPU % MEM TIME + COMMAND S 19.6 17.1 15 4077 gaurav 20 0 3,312,128 673,480 118,360 : 13.23 웹 콘텐츠 3712 gaurav 20 0 3,953,008 453,544 116,476 4.0 11.5 9 S : 28.39 MainThread 2010 gaurav 20 0 14.85 그놈 쉘 1,197 루트 (20) 0 1,039,612 33,704 22,988 S 1.0 0.9 3 : 4,084,232 111,096 45,024 1.7 2.8 3 초 04.42 Xorg에서 1,426 CouchDB를 20 0 3,772,396 16,908 2,520 0.7 0.4 1 S : 50.83 beam.smp 3288 gaurav 20 0 722,480 25,048 18,272 S를 0.7 0.6 0 : 06.84 그놈 터미널 - 3915 gaurav 20 0 2,804,900 231,524 111,228 0.7 5.9 0 S : 54.42 웹 콘텐츠를 4146 gaurav 20 0 3,017,924 245,304 120,604 0.7 6.2 2 S : 01.21 웹 콘텐츠를 4417 gaurav 20 0 2,964,208 234,396 119,160 0.7 6.0 0 S :59.90 웹 콘텐츠 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 웹 콘텐츠 16007 gaurav 20 0 41944 3780 3116 R.10 

사용 맨 위 명령은 터미널에 여러 프로세스를 표시합니다. 특정 이름으로 프로세스를 표시해 보겠습니다. 우리는 사용할 것입니다 그렙 이름이 'mongo' 문자열과 일치하는 프로세스를 표시하는 명령입니다.

상단 | grep - 나는 몽고

메모: 여기에서 -i 옵션을 사용하여 검색을 대소문자를 구분하지 않도록 했습니다.

이 명령의 출력은 'mongo'라는 이름과 일치하는 프로세스를 표시합니다.

 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.7 0.11 S : 03.22는 MongoDB를 20 0 288,564 4,848 1,320 1,158 1.0 0.1 1 초 mongod : 03.25는 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.7 0.1 1 초 mongod : 03.27이 1,158 MongoDB를 20 0 288,564 4,848 1,320 S를 mongod 0.7 : 0.11 : 03.29이 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.7 0.1 1 초 mongod : 03.31는 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.7 0.1 1 초 mongod : 03.33는 MongoDB를 20 0 288,564 4,848 1,320 1,158 1.0 0.1 1 초 mongod : 03.36이 1,158하여 MongoDB를 mongod 03.38이 1,158 MongoDB를 20 0 288,564 4,848 1,320 S 0.7 0.1 1 mongod : 20 0 288,564 4,848 1,320 0.7 0.1 1 초 03.40는 MongoDB를 20 0 288,564 4,848 1,320 1,158 1.0 0.1 1 초 mongod : 03.43이 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.7 0.1 S mongod 1 : 03.45은 MongoDB를 20 0 288,564 4,848 1,320 1,158 1.0 0.1 1 초 mongod : 03.48는 MongoDB를 20 0 288,564 4,848 1,320 1,158 0.3 0.1 1 초 mongod : 03.49는 MongoDB를 20 0 288,564 4,848 1,320 1,158 1.0 0.1 1 초 mongod : 03.52이 1,158 MongoDB를 20 0 mongod 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

이제 우리는 피킬 'mongo'라는 프로세스를 종료하는 명령입니다.

피킬 몽고

이 명령은 이제 프로세스 mongo를 종료합니다. 다음을 사용하여 프로세스가 강제 종료되었는지 확인할 수 있습니다. pgrep 를 표시하는 명령 PID 사용자가 지정한 기준에 따라 실행 중인 프로세스의

gaurav@ubuntu:~$ pgrep mongo gurav@ubuntu:~$

이 명령은 값을 반환하지 않습니다. 이것은 프로세스 'mongo'가 이제 다음을 사용하여 종료되었음을 확인합니다. 피킬 명령.

자주 사용하는 옵션 피킬 명령

사용하면서 피킬 명령을 적절하고 손쉽게 사용하려면 언급된 옵션이 필요합니다. 피킬 명령.

옵션설명
-에프공백, 따옴표, 특수 문자를 포함한 전체 인수에 대해 일치
-유지정된 사용자가 실행 중인 프로세스와 일치하도록 pkill 프로세스에 알리기 위해
-1프로세스를 다시 로드
-9프로세스를 죽인다
-15프로세스를 정상적으로 중단

의 예를 하나 더 보자. 피킬 명령을 사용하여 -에프 옵션.

현재 터미널에서는 아래와 같이 2개의 명령어가 실행되고 있습니다.

ping bbc.com ping youtube.com

두 프로세스 모두 명령. 이제 "ping youtube.com" 프로세스 하나만 종료하려는 경우 다음을 사용해야 합니다. -에프 옵션 피킬 프로세스 이름의 공백과 따옴표를 포함하여 특정 이름을 가진 프로세스를 종료하는 명령입니다.

명령:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gurav@ubuntu:~$ 

결과:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) 바이트 데이터. bom12s08-in-f14.1e100.net에서 64바이트(142.250.67.206): icmp_seq=1 ttl=117 time=30.9ms 64바이트: bom12s08-in-f14.2250에서 64바이트 =117 시간=121ms bom12s08-in-f14.1e100.net에서 64바이트(142.250.67.206): icmp_seq=206 ttl=117 시간=86.5ms(bom12s.08-in-in-in에서 64바이트) ): icmp_seq=207 ttl=117 time=105ms 종료된 gaurav@ubuntu:~$ 

여기서 "ping youtube.com" 프로세스가 이제 종료되고 "핑 bbc.com"는 여전히 터미널에서 실행 중입니다.

만약 우리가 사용했다면 피킬 핑 명령, 그것은 둘 다 죽였을 것입니다 바람직하지 않은 프로세스.

와 함께 사용되는 신호 피킬 명령

피킬 특정 신호를 해당 프로세스에 보내 프로세스를 강제 종료합니다. 세 가지 가능한 신호가 있습니다. 피킬 명령은 사용자가 제공하는 명령에 따라 프로세스에 보낼 수 있습니다.

다음은 사용 가능한 신호 목록입니다.

신호사양
1(앉다)지정된 프로세스를 다시 로드
9 (죽이다)지정된 프로세스를 종료
15 (기간)지정된 프로세스를 부드럽게 중지하거나 중단합니다.

이 튜토리얼에서는 죽이다 신호. 더 나은 이해를 위해 몇 가지 예를 살펴보겠습니다.

사용 pgrep 얻으라는 명령 PID 아파치 이름과 일치합니다.

gaurav@ubuntu:~$ pgrep 아파치 1218 10402 10403 gaurav@ubuntu:~$
pkill - 킬 아파치

또는 숫자와 함께 명령을 사용할 수도 있습니다(예: 1, 9, 15).

pkill -9 아파치

위에 표시된 두 명령 모두 Apache 프로세스를 종료합니다. 로 확인 pgrep 다시 명령하십시오.

gaurav@ubuntu:~$ pgrep 아파치 gaurav@ubuntu:~$

pgrep 명령은 출력을 반환하지 않으며 프로세스 아파치가 종료되었음을 증명합니다.

결론

이 튜토리얼에서는 피킬 명령 및 프로세스 이름을 직접 사용하여 프로세스를 종료하는 데 사용되는 방법. 우리는 또한 pgrep 특정 사용자가 실행한 프로세스의 프로세스 ID를 가져오는 데 사용되는 명령입니다. 그만큼 pgrep 명령을 사용하면 프로세스가 종료되었는지 교차 확인할 수 있습니다.