집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >리눅스에서 프로세스를 죽이는 방법
SMX 1822 1 0 11:38? 00:00:49 gnome-terminal
smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper
smx 1824 1822 0 11:38 pts/0 00:00:02 b ash
smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 1822 0 11:38 pts/1 00:00:00 bash
smx 1880 1619 0 11:38 ? 00:00 ;
smx 1822 0.1 0.8 58484 18152 ? sl 11:38 0:49 그놈 터미널
smx 1823 0.0 0.0 1988 712 0 그놈-pty-helper
smx 1824 0.0 0.1 6820 3776 pts/0 ss 11:38 0:02 bash
sm x 1857 0.0 0.1 6688 3644 pts/1 ss 11:38 0:00 bash
smx 1880 0.0 0.6 41536 12620 ? s 11:38 0:00 업데이트 알림
smx 11953 0.0 0.0 2716 10 64 pts /0r+ 21:42 0: 00 ps -aux
지금 Firefox 프로세스를 종료하려면 터미널에 다음을 입력하세요.코드 복사 코드는 다음과 같습니다.
$ kill -s 9 1827
where -s 9는 프로세스에 전달된 신호가 9, 즉 강제로 가능한 한 빨리 프로세스를 종료하도록 지정합니다. 각 종료 신호와 해당 기능은 부록을 참조하세요.
1827은 위 ps에서 찾은 Firefox의 pid입니다.
고급:
개선 1:
파이프라인을 통해 ps 쿼리 결과를 grep하여 특정 문자열이 포함된 프로세스를 찾습니다. 파이프 문자 "|"는 두 명령을 구분하는 데 사용됩니다. 파이프 문자 왼쪽에 있는 명령의 출력은 파이프 문자 오른쪽에 있는 명령의 입력으로 사용됩니다.
코드 복사 코드는 다음과 같습니다.
$ ps -ef | grep firefox
smx 1827 1 4 11:38 00:27:33 /usr/lib/firefox-3.6.18/firefox-binsmx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox
이번엔 상쾌하네요. 그런 다음코드를 복사하세요. 코드는 다음과 같습니다.
pgrep을 보면 가장 먼저 무엇이 떠오르시나요? 그렇죠, 그렙! pgrep의 p는 이 명령이 특히 프로세스 쿼리를 위한 grep임을 나타냅니다.
$ pgrep firefox
무엇이 보이나요? 맞습니다. Firefox의 pid입니다. 다시 입력해야 합니다:
$kill -s 9 1827
Improvement 3 - pidof 사용:
코드 복사 코드는 다음과 같습니다.
$ pidof firefox-bin
pgrep과 비교했을 때 약간의 단점은 pidof가 프로세스의 전체 이름을 제공해야 한다는 것입니다. 다음은 진부한 표현입니다:
코드 복사 코드는 다음과 같습니다:
$kill -s 9 1827
개선 4:
코드 복사:
"grep firefox"의 출력은 "firefox" 키워드를 포함하는 모든 프로세스입니다.
"grep -v grep"은 나열된 프로세스에서 "grep" 키워드가 포함된 프로세스를 제거하는 것입니다.
"cut -c 9-15"는 입력 줄의 9~15번째 문자를 가로채는데, 이는 프로세스 번호 pid입니다.
"xargs kill -s 9"의 xargs 명령은 이전 명령의 출력 결과(pid)를 "kill -s 9" 명령의 매개변수로 사용하여 명령을 실행하는 데 사용됩니다. "kill -s 9"는 지정된 프로세스를 강제로 종료합니다.
뭔가 불평하고 싶지 않으신가요? 예, 너무 깁니다
개선 5:
pgrep 및 pidof 명령을 알고 있는데 왜 이렇게 긴 문자열을 입력해야 합니까!
코드 복사 코드는 다음과 같습니다.
$ pgrep firefox |
개선 사항 7:
종료를 위해 pid를 전달하려면 매번 xargs를 호출해야 합니까? 대답은 '아니오'입니다.
코드 복사 코드는 다음과 같습니다.
개선 사항 8:
예, 명령은 여전히 약간 길며 pgrep으로 대체되었습니다.
코드 복사 코드는 다음과 같습니다.
$kill -s 9 `pgrep firefox`
Improvement 9 - pkill:
pkill을 보고 어떤 생각이 드셨나요? 맞습니다 pgrep 및 kill! pkill=pgrep+kill.
코드 복사 코드는 다음과 같습니다:
$pkill -9 firefox
설명: "-9"는 전송된 신호가 9라는 의미입니다. 이 점에서 pkill과 kill의 차이점은 다음과 같습니다. pkill은 필요하지 않습니다. "s"는 신호 레벨을 종료합니다. "-" 바로 뒤에 옵니다. 예전에는 항상 "-s 9"라고 생각했는데 실행할 때마다 프로세스가 종료되지 않더군요.
개선 사항 10 - killall:
killall은 pkill과 유사하지만 지정된 프로세스 이름이 불완전한 경우 killall이 오류를 보고합니다. pkill 또는 pgrep은 단순히 프로세스 이름의 일부를 제공하여 프로세스를 종료할 수 있습니다.
코드 복사 코드는 다음과 같습니다.
$killall -9 firefox
위 내용은 리눅스에서 프로세스를 죽이는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!