강좌 & 팁
임베디드 보드를 테스트 하다보면 백그라운드로 동작하고 있는 프로세스를 죽이고 싶습니다.
한개면 하나씩 kill 을 하면 되지만, 여러개 이면 피곤해 집니다.
아래는 현재 제가 테스트 하고 있는 보드의 ps 명령어를 입력 한 것중 일부분을 올렸습니다.
root@aaa:/app/test# ps
PID USER VSZ STAT COMMAND
1124 root 2236 S /home/root/app-gpio 3874 out 2 30 1 blink=300
1125 root 2236 S /home/root/app-gpio 3874 out 2 31 1 blink=300
1126 root 2976 R ps
제가 없애고 싶은 것은 app-gpio(pid 번호 1125, 1125)입니다.
그럼 이제 없애 보기 시작 하겠습니다.
1.
우선 pid를 추출 해야 합니다.
ps | grep app-gpio 명령어를 넣으면, 아래와 같습니다.
1124 root 2236 S /home/root/app-gpio 3874 out 2 30 1 blink=300
1125 root 2236 S /home/root/app-gpio 3874 out 2 31 1 blink=300
1128 root 2976 S grep app-gpio
1128은 필요 없으니 필터링을 해아 합니다.
2.
ps | grep app-gpio | grep -v grep 를 넣으면, 아래와 같습니다.
1124 root 2236 S /home/root/app-gpio 3874 out 2 30 1 blink=300
1125 root 2236 S /home/root/app-gpio 3874 out 2 31 1 blink=300
3.
이제 pid 만 추출해야 합니다.
ps | grep app-gpio | grep -v grep | awk '{print $1}' 를 입력 합니다.
1124
1125
만 나왔습니다.
4.
이제 kill 명령어와 합체시키겠습니다.
kill `ps | grep app-gpio | grep -v grep | awk '{print $1}'` 를 입력합니다.
5.
ps 를 해보시면 제가 원하는 프로세스가 제거된 것을 확인 할 수 있습니다.
결론
kill `ps | grep 프로세스이름 | grep -v grep | awk '{print $1}'`
주의 할 점
ps 앞의 ` 는 GRAVE 입니다. 숫자 1 번 왼쪽 키
{ 앞의 ' 는 APOSTROPHE 입니다. : 오른쪽 키
{print $1} 는 머신마다 pid 있는 위치가 틀립니다. 따라서 위치에 따라 $1, $2 이렇게 변경해 주셔야 합니다.
끝 -