리눅스 특정 프로세스 전부 종료시키기
리눅스의 명령어들 ps, grep, awk, xargs, kill을 조합하여 특정 프로세스를 전부 종료시키는 예제를 해보겠다.
이번 명령어 실험 대상은 chrome으로 해보겠다.
ps -ef | grep chrome 명령으로 여러 개의 프로세스가 떠있는 걸 확인할 수 있다.
실제로 사용할 때는 chrome 이 아니라 원하는 프로세스명을 넣으면 된다.
muabow@muabow:~$ ps -ef | grep chrome
muabow 13759 1 2 13:32 ? 00:02:43 /opt/google/chrome/chrome
muabow 13770 13759 0 13:32 ? 00:00:00 /opt/google/chrome/chrome --type=zygote
muabow 13771 13770 0 13:32 ? 00:00:00 /opt/google/chrome/nacl_helper
muabow 13774 13770 0 13:32 ? 00:00:00 /opt/google/chrome/chrome --type=zygote
muabow 14016 13774 0 13:33 ? 00:00:01 /opt/google/chrome/chrome --type=renderer --lang=ko --force-fieldtrials=AffiliationBasedMatching/EnabledThroughFieldTrial/AppBannerTriggering/Aggressive/CaptivePortalInterstitial/Enabled/ChildAccountDetection/Disabled/*DataReductionProxyConfigService/Enabled/EnableSessionCrashedBubbleUI/Enabled/EnforceCTForProblematicRoots/disabled/LinuxObsoleteSystemIsEndOfTheLine/EndOfLine/PasswordBranding/SmartLockBrandingSavePromptOnly/*PasswordGeneration/Disabled/ReportCertificateErrors/ShowAndPossiblySend/SHA1IdentityUIWarning/Enabled/SHA1ToolbarUIJanuary2016/Warning/SHA1ToolbarUIJanuary2017/Error/SSLCommonNameMismatchHandling/Enabled/SafeBrowsingUnverifiedDownloads/DisableByParameterMostSbTypes2/Spellcheck/Default/*UMA-Population-Restrict/normal/ --instant-process --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --blink-settings=fetchDeferLateScripts=true,fetchIncreaseFontPriority=true,fetchIncreasePriorities=true --num-raster-threads=1 --content-image-text
muabow 31845 14226 0 15:17 pts/9 00:00:00 grep --color=auto chrome
그럼 여기서 파이프를 하나 더 넣어 awk를 조합해보겠다.
awk {'print $2'}는 이전에 출력된 결과의 2번째 항목을 출력하겠단 의미이다.
항목은 공백(space)으로 구분(split)하고 1번째는 계정 정보인 muabow, 2번째는 pid, 3번째는 ppid 순으로 이뤄진다.
여기서 각 프로세스의 pid를 얻어야 kill을 할 수 있으니 awk {'print $2'}를 넣어서 pid 목록만 출력한 것이다.
muabow@muabow:~$ ps -ef | grep chrome | awk {'print $2'}
13759
13770
13771
13774
14016
31960
pid 목록까지 확보했으니 프로세스를 죽이는 kill 명령을 조합해보자.
xargs는 이전 출력을 인자로 사용한다는 의미이고 -9는 force를 의미한다. graceful 하게 종료까지 기다려주지 않고 그냥 메모리에서 내려버린다.
어쨌든 xargs kill -9 <pid>처럼 동작하는 것이다.
muabow@muabow:~$ ps -ef | grep chrome | awk {'print $2'} | xargs kill -9
muabow@muabow:~$
결과를 확인하기 위해 다시 한번 ps -ef | grep chrome을 실행해보자.
muabow@muabow:~$ ps -ef | grep chrome
muabow 32039 14226 0 15:18 pts/9 00:00:00 grep --color=auto chrome
muabow@muabow:~$
실행 중인 모든 프로세스가 종료된 것을 확인할 수 있다.
이렇게 ps, grep, awk, xargs를 조합하면 여러 작업에 응용할 수 있다.
끝.
'IT > linux' 카테고리의 다른 글
linux NTP Server / Client 설치 및 설정 정보 (0) | 2022.01.20 |
---|---|
mplayer slave mode, 파이프, 커맨드 사용 (0) | 2022.01.20 |
linux netstat 용어 설명 (0) | 2022.01.18 |
출력에 색깔 입히기 정리 및 결과, ansi color (2) | 2022.01.17 |
임베디드 리눅스 보안 이슈 정리 (0) | 2022.01.17 |
댓글