본문 바로가기

컴퓨터 기본/Linux

[Linux] 프로세스 유틸리티 명령어

ps

=process status

현재 실행 중인 프로세스의 상태를 보여준다

CPU 낮은 순으로 보여줌

 

옵션 내용
a (all) 실행 중인 모든 프로세스 출력
e 모든 프로세스 정보
u (user) 사용자 이름, 프로세스 시작시간 출력
x 접속 터미널 + 사용중인 모든 프로세스 출력
l 자세한 정보 출력

 

ex)

ps aux

: 모든 사용자의 터미널에서 사용하는 프로세스 정보를 출력한다

ex)

ps ax | grep tomcat

: 톰캣 가동 여부를 확인하기

 

 

pstree

실행 중인 프로세스를 트리구조로 보여줌

 

 

옵션 내용
-p 프로세스 id 표시
-n 프로세스 id 표시 + 정렬
-a 명령행 인자를 포함한 정보를 표시
-n 해당 프로세스의 부모 프로세스를 음영 표시

ex)

pstree -p

 

ex)

pstree -np

 

ex)

pstree -a

 

 

jobs

백그라운드 작업, 중지상태인 작업 등을 보여준다

옵션 내용
-l 프로세스 그룹id를 state 에 표시
-n 프로세스 그룹 중 대표 프로세스id 표시
-p 프로세스id 를 한 행씩 표시 

 

ex)

jobs -p | grep '-^\[4\]': 프로세스id 4 출력

jobs -l | grep '-^\[4\]': 프로세스id 4 => PID 와 함께 출력

jobs -p | head -4: 4줄까지 jobs 내용 출력

 

 

bg, fg

bg: 백그라운드 작업으로 전환

  • 방법: ctrl + z (작업을 일시중지) => bg 명령어
  • 백그라운드 작업 실행시 명령어 끝에 & 붙이기

fg: 포그라운드 작업으로 전환

 

kill

프로세스 종료

 

옵션 내용
-l (list) 시그널 종류
-s 시그널번호
-s 시그널명
전달할 시그널 종류
-1 재시작
-9 강제 종료

 

ex)

kill -15 101, 102: PID 101, 102 정상종료

kill -9 101, 102: PID 101, 102 강제종료

kill -9 10{1..2}: PID 101부터 102까지 강제종료

 

nice

  • 프로세스 우선순위 확인 및 변경 명령어
  • NI값이 조정된다
  • 값: -20 ~ 19
  • 값이 낮을수록 우선순위가 높다( -20: 가장 높다. 19: 가장 낮다)
  • 디폴트 우선순위는 10
  • 일반 사용자는 nice 값을 올리기만 할 수 있음
  • root 사용자는 nice 값 올리기, 내리기 둘다 가능

ex) 

nice -10 xxx: xxx의 NI값 10 증가 (10만큼 우선순위 낮아짐)

nice --10 xxx: xxx의 NI값 10 감소 (10만큼 우선순위 높아짐)

 

renice

  • NI 값을 새로 지정하는 명령어
  • (참고. nice: 기존 NI 값을 기준으로 순위를 높이거나 내린다)
  • 프로세스 소유자와 root만 내릴 수 있는 명령어

ex)

renice -20 101

: PID 101의 NI값을 -20(최고 우선순위)로 지정

 

renice 19 102

: PID 102의 NI값을 19(최저 우선순위)로 지정

 

top

프로세스 상태 실시간 모니터링 명령어

5초마다 화면 갱신됨

 

ex)

top

 

nohup

  • 작업이 백그라운드 작업으로 계속될 수 있도록 설정하는 명령어
  • 사용자 로그아웃, 터미널 종료 등에도 프로세스가 꺼지지 않는다
  • 명령어 뒤에 & 을 붙인다
  • $HOME/nohup.out 파일이 생성돼 작업이 기록된다

ex)

nohup tar cvf xxx.tar opc /home/a1/test01 &

: xxx.tar 파일 압축해제를 nohup 설정하기

 

 

cron

  • 주기적으로 반복적으로 실행되도록 하는 명령어
  • crond: 스케줄링 서비스
  • 파일: /etc/crontab (여기에 반복실행할 내용을 추가하면 됨
  • /etc/crontab 에 넣을 형식: 분/시/날/달/요일/명령어

/etc/crontab 내용 확인

 

ex)

* 4 * * 2,4 /etc/xxx.sh: 매주 화, 목요일 오전 2, 4시에 /etc/xxx.sh 실행

30 2 * * 0-6 /etc/xxx.sh: 매일(일~토) 오전 2시 30분에 /etc/xxx.sh 실행

0 11 * * 1~5 /etc/xxx.sh: 월~금요일 오전 11시 정각에 /etc/xxx.sh 실행

10 9 25 * * /etc/xxx.sh: 매월 25일 오전 9시 10분에 /etc/xxx.sh 실행

11 11 15 5-10/2 * /etc/xxx.sh: 5월부터 10월까지 2달마다 15일 오전 11시 11분에 /etc/xxx.sh 실행