반응형
회사에서 일을 하다 보면 반복 작업이 생깁니다. 예를 들어 아래와 같은 작업이 있다고 가정해봅시다.
- 특정 서비스(프로세스)를 강제로 내린다.
위 작업은 매우 간단합니다.
해당 프로세스의 PID를 찾아서 kill 명령어로 강제 종료합니다.
PID는 매번 서비스를 올릴 때마다 바뀝니다. 그렇기에 보통은 아래와 같은 방식으로 위 작업을 수행합니다.
(서비스가 nodejs로 구성 됬다면)
jckang@jckang:~/nba_react/nba-app$ ps -ef | grep node
jckang 3582 3581 0 22:01 pts/6 00:00:00 node /home/jckang/nba_react/nba-app/node_modules/.bin/react-scripts start
jckang 3589 3582 1 22:01 pts/6 00:00:13 node /home/jckang/nba_react/nba-app/node_modules/react-scripts/scripts/start.js
jckang 29776 13697 0 22:18 pts/2 00:00:00 grep --color=auto node
jckang@jckang:~/nba_react/nba-app$ kill -9 3582 3589
명령어에 대해서 간단히 설명하자면
- ps -ef : 현재 실행 중인 프로세스를 표시합니다.
- grep node : node라는 문자열이 포함된 라인(행)을 출력합니다.
위 두 가지 명령어를 함께 썼으니 현재 실행 중인 프로세스를 표시하는데 node라는 문자열이 포함된 행을 출력시키는 것입니다.
- kill -9 3582 3589 : 3582, 3589라는 PID를 가진 프로세스를 강제로 죽입니다(-9 : 강제 죽이기)
이 후 다시 ps 명령어로 확인해보면
jckang@jckang:~/nba_react/nba-app$ !ps
ps -ef | grep node
jckang 29782 13697 0 22:20 pts/2 00:00:00 grep --color=auto node
프로세스가 죽은걸 확인 할 수 있습니다.
위 작업을 한줄의 명령어로 하려면?
jckang@jckang:~/nba_react/nba-app$ kill -9 $(ps -ef | grep node | awk '{print $2}')
- kill -9 $(ps -ef | grep node | awk '{print $2}')
위 명령어 한줄이면 Pid를 확인하고 일일이 타이핑해서 프로세스를 죽일 필요없습니다.
$()라는 표현식은 리눅스 터미널에서 사용할 수 있으며, 안에 포함된 명령어를 kill 명령어보다 우선 실행 시킵니다.
`(back quote)로 대체 하여 사용 가능합니다.
awk '{print $2}' 는 표준출력으로 부터 2번째 필드를 출력합니다.
반응형
'개발 이야기 > Linux' 카테고리의 다른 글
Ubuntu 16.04 VBox 부팅 시 failed to start. Setting guest IRQ filter mask 해결법 (0) | 2019.07.21 |
---|---|
리눅스 자주 쓰는 명령어2 (0) | 2019.06.24 |
Shell script로 Backup 기능 작성 (0) | 2019.03.15 |
리눅스_echo 명령어! (0) | 2018.10.20 |
리눅스_네트워크 수동 설정 후 Warning 없애기 (0) | 2018.07.27 |