top 명령어
Linux 프로세스를 표시하는데 사용된다.
실행중인 프로세스를 실시간으로 보는 것을 제공해 준다.
일반적으로 이 명령어는 시스템의 요약 정보와 현재 리눅스 커널에서 관리하는 프로세스 또는 쓰레드 목록을 보여준다.
이 명령을 실행 하면 위쪽 절반에 프로세스 및 리소르 사용 통계가 포함되는 명령어 모드가 열린다.
하단에는 현재 실행중인 프로세스 목록이 포함 되어 있다. q를 누르면 명령 모드가 종료한다.
보여주는 목록들로는 PID, PR, VIRT, CPU, TIME, SHR, NI, MEM, RES, COMMAND
PID : 작업의 고유 프로세스 ID를 표기한다. PR : 프로세스의 우선순위를 나타낸다. 숫자가 낮을수록 우선순위가 높다. VIRT : 작업에서 사용한 총 가상 메모리이다. USER : 작업 소유자의 사용자 이름이다. CPU : CPU사용량을 나타낸다. TIME : CPU 시간, TIME과 동일 하지만 100분의 1초를 통해 더 세분화 하여 나타낸다. SHR : 작업에서 사용하는 공유 메모리 크기(kb)를 나타낸다. NI : 작업의 좋은 가치를 나타낸다. nice 값이 음수이면 우선순위가 높고 nice값이 양수이면 우선순위가 낮다. MEM : 작업의 메모리 사용량을 보여준다. RES : 프로세스가 사용중인 물리적 RAM의 양(kb)이다. COMMAND : 프로세스를 시작한 명령의 이름.
옵션
ex 1) top -n 10 특정 반복 후 상단 명령 종료 : top 출력은 'q'를 누를 때 까지 계속 새로고침 된다. top -n 10을 사용하면 top명령은 총 10번 반복 후에 자동으로 종료 된다.
ex 2) top -u paras 특정 사용자 프로세스를 표시 하여 준다.
ex 3) top -h 상단에서 실행중인 프로세스를 강조하여 표시해 준다. 실행중인 상단 명령에서 'z'옵션을 누르면 실행중인 프로세스를 색상으로 표시하여 쉽게 실행중인 프로세스를 식별하는 데 도움이된다.
ex 4) top -b 배치 모드 : 상단에서 파일이나 다른 프로그램으로 출력을 보낸다.
ex 5) top -s 보안 모드 : 보안 모드에서 top명령을 사용한다.
ex 6) top -c 명령줄 : 마지막으로 닫힌 상태로 맨 위에서 시작한다.
ex 7) top -d seconds.tenths delay(지연시간) : 화면 업데이트 사이의 지연 시간을 알려준다.
ps 명령어
ps 명령어는 현재 실행중인 프로세스 목록과 상태를 보여준다.
ps의 옵션은 전통적인 유닉스인 System V, BSD, GUN에 따라 결과가 다르게 나타나고 표기법에도 차이를 보인다.
옵션 사용지 System V계열은 '-'를 사용하고 있고 BSD 계열은 '-'를 사용하지 않는다. GNU에서는 옵션 표기는 두개의 대시'--'를 사용한다.
따라서 원하는 프로세스의 상태를 출력하려면 정확한 옵션 사용이 중요하다.
ps 옵션
-A 모튼 프로세스를 출력한다.
-a 섹션리더(일반적으로 로그인 셸)를 제외하고 데몬 프로세스처럼 터미널에 종속되지 않은 모든 프로세스를 출력한다.
-e 커널 프로세스를 제외한 모든 프로세스를 출력해 준다.
-f 풀 포멧으로 보여준다. 유닉스 스타일로 줄력해 주는 옵션으로 UID, PID, PPID등이 함께 표기된다.
-l 긴포멧으로 보여준다. 프로세스의 정보를 길게 보여주는 옵션으로 우선순위와 관련된 PRI와 NI값을 확인 할 수 있다.
-o 출력 포맷을 지정하는 옵션으로 값으로는 pid, tty, time, cmd등을 지정할 수 있다.
-M 64bit 프로세서들을 보여준다.
-m 프로세서들 뿐만 아니라 커널 스레드들도 보여준다.
-p 특정 PID를 지정할 때 사용한다.
-r 현재 실행 중인 프로세서를 보여준다.
-u 특정 사용자의 프로세스 정보를 확인 할 때 사용한다. 사용자를 지정하지 않으면 현재 사용자를 기준으로 정보를 출력한다.
-x 로그인 상태에 있는 동안 아직 완료되지 않은 프로세서들을 보여준다. 유닉스 시스템은 사용자가 로그아웃 한 후에도 임의의 프로세서가 계속 동작하게 할 수 있다. 그러면 그 프로세서는 자신을 실행시킨 셸이 없이도 계속 자신의 일을 수행하는데 이러한 프로세서는 일반적인 ps명력으로 확인 할 수 없다. 이 때 -x 옵션을 사용하면 자신의 터미널이 없는 프로세서들을 확인할 수 있다.
특정 프로세스를 확인하는데 주로 grep이라는 명령어와 함께 사용합니다. System V 계열에선 'ps -ef'를 가장 많이 사용한다. ps -ef | grep '프로세스명'
BSD 계열에선 'ps aux'를 가장 많이 사용합니다 ps aux | grep '프로세스명'
ps 항목
항목 의미
USER :BSD계열에서 나타나는 항목으로 프로세스 소유자의 이름
UID : SYSTEM V계열에서 나타나는 항목으로 프로세스 소유자의 이름
PID : 프로세스의 식별변호
PPID : 부모 프로세스 ID
%CPU : CPU 사용 비율의 추정치(BSD)
%MEM : 메모리의 사용 비율의 추정치 (BSD)
VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
RSS : 실제 메모리 사용량 (Resident Set Size)
TTY : 프로세스와 연결된 터미널
S, STAT : 현재 프로세스의 상태 코드 (S: Sys V, STAT: BSD)
TIME : 총 CPU 사용 시간
COMMAND : 프로세스의 실행 명령행
STIME : 프로세스가 시작된 시간 혹은 날짜
C, CP : 짧은 기간 동안의 CPU 사용률 (C: Sys V, CP: BSD)
F : 프로세스의 플래그
PRI : 실제 실행 우선순위
NI nice : 우선순위 번호
jobs 명령어 작업 명령은 백그라운드 및 포그라운드에서 실행 중인 작업을 나열하는 데 사용됩니다. 정보 없이 프롬프트가 반환되면 작업이 없는 것입니다. 모든 쉘은 이 명령을 실행할 수 없습니다. 이 명령은 csh, bash, tcsh 및 ksh 셸에서만 사용할 수 있습니다.
사용법 jobs [JOB]
옵션 -l 일반 정보 외에 프로세스 ID를 나열합니다.
-n 마지막 알림 이후 상태가 변경된 프로세스만 나열합니다.
-p 프로세스 ID만 나열합니다.
-r 실행 중인 작업으로 출력을 제한합니다.
-s 중지된 작업으로 출력을 제한합니다.
사용법
$ jobs
Output:
[1] 7893 Running gpass &
[2] 7904 Running gnome-calculator &
[3]- 7955 Running gedit fetch-stock-prices.py &
[4]+ 7958 Stopped ping cyberciti.biz
이름이 "p"로 시작하는 작업에 대한 프로세스 ID 또는 작업을 표시하려면 다음을 수행하십시오.
$ jobs -p %p || $ jobs %p
Output:
[4]- Stopped ping cyberciti.biz
-p 옵션을 작업 명령에 전달하여 PID만 표시
$ jobs -p
Output:
7895
7906
7910
7946
실행 중인 작업만 표시하려면 작업 명령에 -r 옵션을 전달합니다.
$ jobs -r
Output:
[1] Running gpass &
[2] Running gnome-calculator &
[3]- Running gedit fetch-stock-prices.py &
kill 명령어
Linux의 kill 명령(/bin/kill에 있음)은 프로세스를 수동으로 종료하는 데 사용되는 내장 명령입니다. kill 명령은 프로세스를 종료하는 신호를 프로세스에 보냅니다. 사용자가 kill 명령과 함께 보낼 신호를 지정하지 않으면 프로세스를 종료하는 기본 TERM 신호가 전송됩니다.
옵션 및 예
- kill -l : 사용 가능한 모든 신호를 표시하려면 아래 명령 옵션을 사용할 수 있습니다.
$kill -l
음수 PID 값은 프로세스 그룹 ID를 나타내는 데 사용됩니다. 프로세스 그룹 ID를 전달하면 해당 그룹 내의 모든 프로세스가 신호를 수신합니다.
PID -1은 시스템에 있는 모든 프로세스의 상위 프로세스인 kill 및 init를 제외한 모든 프로세스를 나타내기 때문에 매우 특별합니다.
실행 중인 프로세스 목록을 표시하려면 ps 명령을 사용하면 PID 번호와 함께 실행 중인 프로세스가 표시됩니다. 어떤 프로세스가 kill 신호를 받아야 하는지 지정하려면 PID를 제공해야 합니다.
*PID 찾기
$ps
- kill pid : kill 명령어 로 PID 를 사용하는 방법을 보여줍니다.
$kill pid
- kill -s : 프로세스에 신호를 보내는 방법을 보여줍니다.
kill {-signal | -s signal} pid
- kill -L : 이 명령은 사용 가능한 신호를 테이블 형식으로 나열하는 데 사용됩니다.
kill {-l | --list[=signal] | -L | --table}