저번 시간에 프로세스 관리에 대한 개념과 유형에 대해 알아보았습니다.
이번 시간에는 프로세스와 관한 명령어 종류와 유틸리티에 대해 알아보는 시간을 가져 보겠습니다.
프로세스 유틸리티
프로세스 관련 명령어
ps는 현재 실행 중인 프로세스의 상태를 보여주는 명령어로 CPU 사용도가 낮은 순서로 출력합니다.
PS[옵션]
옵션 없이 명령어'ps'를 실행하면 자신의 터미널에서 실행되고 있는 프로세스들의 관련 정보만 나타냅니다.
상태 | 설명 | |
ㄱ | PID | 프로세스 식별번호 |
ㄴ | TTY | 프로세스와 연결된 터미널 번호 |
ㄷ | TIME | 총 CPU 사용 시간 |
ㄹ | CMD | 실행 명령 |
명령어 ps에서 많이 사용하는 옵션들은 아래의 표와 같습니다.
옵션 | 설명 |
a | 현재 실행 중인 모든 프로세스 출력 |
e | 모든 프로세스 정보 |
u | 사용자 이름과 프로세스 시작 시간 출력 |
x | 접속된 터미널뿐만 아니라 사용되고 있는 모든 프로세스들을 출력 |
l | 자세한 정보 출력 |
좀비 프로세스는 kill 시그널을 받아도 종료되지 않으며, 이 프로세스는 이미 현재 프로세스에 대한 모든 정보가 메모리에서 사라졌음에는 부모 프로세스가 정상적인 종료처리를 하지 못해 발생합니다.
명령어 ps aux를 수행한 결과로 시스템에 동작중인 모든 프로세스를 소유자 정보와 함께
다양한 정보 BSD 포맷으로 출력, 더 많은 정보를 보고 싶을 때 사용합니다.
상태 | 설명 |
USER | Process 실행 User (BSD 계열) |
PID | Process ID |
%CPU | CPU 사용 비율 추정치 (BSD 계열) |
%MEM | MEM 사용 비율 추정치 (BSD 계열) |
VSZ | 가상 메모리 사용량 |
RSS | 실제 메모리 사용량 |
TT | 프로세스에 연결된 터미널 이름 |
STAT | Process STATE Code |
STARTED | Process 시작 날짜 |
TIME | 해당 Process 에 사용된 CPU 시간 |
상태 | 설명 |
F | 프로세스 플래그로 8진수 값의 합을 나타냄 - 주기억 장치 내에 있음 - 시스템 프로세스 - 주기억장치 내에서 잠김 - 스왑 되고 있음 - 다른 프로세스에 의해 추적되고 있음 |
S | 프로세스 상태를 표시 |
UID | 프로세스 소유자의 Username |
PPID | 부모 프로세스 PID |
C | 짧은 시간 동안의 CPU 사용률 |
PRI | 실행 우선순위 값, 값이 적을수록 우선순위가 높음 |
NI | NICE 우선순위를 계산할 때 사용되는 nice 값 |
ADDR | 프로세스의 주기억장치 내의 주소 |
SZ | 프로세스 크기로 단위는 블록 |
WCHAN | 프로세스가 대기나 수면 상태에서 기다리는 시간 기다리는 시간이(샐행될 주기억장치 내의 주소를) 가리킴 실행 중인 프로세스는 공백 |
NICE값이 '프로세스의 실행 우선순위가 높다'라는 의미는
실행 우선순위가 낮은 프로세스 보다 더 많은 시스템 자원을 할당하게 되므로 실행속도가 빨라지게 된다는 것을 뜻합니다.
즉, NICE값으로 프로세스의 실행 우선순위를 설정합니다.
pstree 명령어 'pstree'는 실행 중인 프로세스들은 트리구조로 나타냅니다.
pstree[옵션]
옵션 | 설명 |
-p | 프로세스 ID 표시 |
-n | 프로세스 ID를 정렬해서 표시 |
-a | 명령행 인자를 포함한 정보를 트리구조에 표시 |
-h | 현재 프로세스와 해당 프로세스의 부모 프로세스를 운영으로 강조해서 표시 |
명령어 pstree -p는 실행 중인 프로세스들은 트리구조로 출력하면서 PID도 나타냅니다.
job은 작업이 중지된 상태, 백그라운드로 진행 중인 상태, 변경되었지만 보고되지 않은 상태 등을 표시합니다.
jobs[옵션][작업번호]
옵션 | 설명 |
-l | 프로세스 그룹 ID를 state 필드 앞에 표시 |
-n | 프로세스 그룹 중 대표(프로세스) ID 표시 |
-p | 프로세스 ID를 한 행씩 표시 |
백그라운드로 실행 중인 프로세스를 확인합니다. [숫자]는 '작업번호'입니다.
출력된 목록에서 +는 현재 작업 실행, -는 앞으로 실행될 작업(대기 상태 작업)을 나타낸다.
작업의 상태 값은 아래의 표와 같습니다.
상태 | 설명 |
Running | 작업이 일시 중단되지 않았고 종료하지 않고 계속 진행 중 |
Stopped | 작업이 일시 중단 |
Done | 작업이 완료되어 0을 반환하고 종료 |
Done(code) | 작업이 정상적으로 완료되었으며 0이 아닌 코드를 변환 |
bg와 fg는 포어그라운드에서 백그라운드로의 전환합니다.
명령어 bg는 현재 실행 중인 프로세스를 백그라운드 작업으로 전환합니다.
bg %작업번호 또는 bg 작업번호
포어그라운드에서 백그라운드 전환 시 먼저 실행 중인 작업을 일시 중지시킨 후 ctrl + z, bg 명령을 수행합니다.
백그라운드에서 포어그라운드로의 전환합니다.
명령어 fg는 형재 백그라운드로 실행 중인 명령어는 포어그라운드로 전환합니다.
fg %작업번호 또는 fg 작업번호
작업번호를 부여하지 않으면 현재 수행 중인 작업을 포어그라운드로 전환합니다.
kill은 프로세스를 종료시킵니다.
kill[옵션][시그널번호 또는 시그널이름][PID 또는 %작업번호]
옵션 | 설명 |
-l | 시그널 종류 나열 |
-s 시그널 번호 -s 시그널명 |
전달한 시그널의 종류를 지정 |
-1 | -HUP, 프로세스를 재시작 |
-9 | 프로세스를 강제로 종료 |
프로세스 2977을 강제로 종료시킨 것입니다.
killall은 같은 데몬의 여러 프로세스를 한 번에 종료시킬 때 사용합니다.
프로세스명으로 연관된 프로세스들을 종료시킵니다.
killall[옵션] 프로세스명
옵션 | 설명 |
-g | 그룹을 지정하여 프로세스를 종료 |
-i | 프로세스 종료 전 확인 메시지 표시 |
-l | 시그널 목록 표시 |
-v | 상세 정보 표시 |
nice는 프로세스 사이의 우선순위를 확인하고 우선순위를 변경할 수 있는 명령어입니다.
NI값을 조정하여 프로세스의 우선순위를 변경합니다.
nice[옵션] 프로세스명
옵션 | 설명 |
-n 조정수치 | 명령의 우선권에 조정수치를 더함(양수값 : - 음수값 : --) |
조정할 수 있는 NI값의 범위는 -20(가장 높은 우선권) ~ 19(가장 낮은 우선권)입니다.
우선순위 0의 값을 가지며 값이 적을수록 우선순위가 높다.
옵션 -n을 사용하지 않으면 디폴트는 10을 사용합니다.
조정수치가 생략되면 명령의 우선권은 10만큼 증가시킵니다.
renice는 이미 실행 중인 프로세스의 우선순위를 변경합니다.
프로세스 소유자의 루트 권한자만이 명령을 내릴 수 있습니다.
renice[옵션] NI값 PID
옵션 | 설명 |
-p | 프로세스 ID 지정 |
-u | 사용자면 지정 |
-g | 프로세스의 GID 지정 |
우선순위 변경 시 프로세스 ID, 사용자명, 프로세스 그룹 ID를 사용합니다.
명령어 nice는 기존 NI값을 증감시키지만 명령어 renice는 지정한 NI값을 설정합니다.
nice는 양수값에 -, 음수값에 --를 사용하지만, renice는 양수값에 -를 사용하지 않습니다.
top은 리눅스 시스템의 운영상태를 실시간으로 모니터링하거나 프로세스 상태를 확인할 수 있습니다.
top[옵션][PID]
옵션 | 설명 |
-d 시간 | 실시간 화면 출력 시간 지정(초 단위) |
-p PID | 모니터할 프로세스 ID 지정 |
기본으로 5초에 한번씩 실시간으로 시스템 상태 정보가 갱신됩니다.
top 실행된 상태에서 다양한 명령을 입력하여 프로세스 상태를 출력하거나 제어할 수 있습니다.
nohup는 프로세스가 중단되지 않고 백그라운드로 작업을 수행할 수 있습니다.
사용자가 로그아웃하거나 작업 중인 터미널 창이 닫혀도 실행 중인 프로세스를
백그라운드 프로세스로 계속 작업할 수 있습니다.
백그라운드로 실행될 수 있도록 명령행 뒤에 '&'를 명시합니다.
tail은 파일의 마지막 행의 기준으로 지정한 행까지 파일 내용의 일부를 출력합니다.
기본값으로 마지막 10줄을 출력합니다.
tail[옵션][파일명]
옵션 | 설명 |
-t | 파일의 10줄을 출력하고 파일의 내용을 실시간으로 출력 |
-n | N 개수만큼의 라인을 출력 |
스케줄링과 cron
주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정합니다.
스케줄링 데몬(서비스)은 'crond'이며, 관련파일은 "etc/crontab"입니다.
파일 /etc/crontab은 7개의 필드로 구성되어 있습니다.
명령어 crontab은 사용자가 주기적인 작업을 등록할 수 있게 합니다.
crontab[옵션]파일명
옵션 | 설명 |
-l | crontab에 설정된 내용 출력 |
-e | crontab을 작성하거나 수정 |
-r | crontab 내용 삭제 |
-u | 특정 사용자의 일정 수정 |
읽어주셔서 감사합니다.^^

'리눅스 > 리눅스 2급' 카테고리의 다른 글
[리눅스 2급] 에디터는 무엇일까? (2) (0) | 2024.10.08 |
---|---|
[리눅스 2급] 에디터는 무엇일까? (1) (3) | 2024.10.07 |
[리눅스 2급] 프로세스 관리에 대해 알아보자(1) (1) | 2024.09.30 |
[리눅스 2급] 셸에 대해 알아보자 (2) (0) | 2024.09.23 |
[리눅스 2급] 셸에 대해 알아보자(1) (0) | 2024.09.20 |