Kong Eunho

프로세스 관리

2025년 10월 31일 15시
카테고리 - LECTURE, 서버프로그래밍


서버프로그래밍(황승연) 9주차 강의내용

프로세스

프로세스 관리 명령

ps [옵션] : 프로세스 상태 확인

구분 옵션 설명
유닉스 -e 시스템에서 실행 중인 모든 프로세스의 정보 출력
-f 프로세스에 대한 상세한 정보 출력
-u UID 특정 사용자에 대한 모든 프로세스의 정보 출력
-p PID PID로 지정한 특정 프로세스의 정보 출력
BSD a 터미널에서 실행한 프로세스의 정보 출력
u 프로세스 소유자의 이름, CPU와 메모리 사용량 등 상세한 정보 출력
x 시스템에서 실행 중인 모든 프로세스의 정보 출력
GNU --pid PID 목록 목록으로 지정한 특정 PID 정보 출력
항목 기능 항목 기능
UID 프로세스를 실행한 사용자 ID STIME 프로세스 시작 날짜 또는 시각
PID 실행 프로세스 번호 TTY 터미널의 종류와 번호
PPID 부모 프로세스 번호 TIME 프로세스 실행 시간
C CPU 사용량을 % 값으로 표시 CMD 실행되고 있는 프로그램 이름

입력 예 : ps -ef

pgrep [옵션] [인자] : 특정 프로세스 정보 검색

옵션 설명
-x 인자와 정확히 일치하는 패턴의 프로세스 정보 출력
-n 인자를 포함하고 있는 가장 최근의 프로세스 정보 출력
-u 사용자 계정 이름 특정 사용자 계정에 대한 모든 프로세스의 정보 출력
-l PID와 프로세스의 이름 출력
-t term 특정 단말기와 관련된 프로세스의 정보 출력

입력 예 : pgrep -x bash

활용 예 : ps -fp $(pgrep -x bash)
pgrep으로 반환한 bash의 PID로 ps 검색 실행

프로세스명으로 검색 : pgrep [프로세스명]
프로세스ID(PID)로 검색 : ps -p [PID]

kill [시그널] PID : 프로세스 종료

시그널(옵션) 설명
-2 인터럽트 시그널 전송 (Ctrl+C)
-9 프로세스 강제 종료
-15 프로세스가 관련 파일을 정리 후 종료(종료되지 않는 프로세스도 존재)

yes > /dev/null : 테스트용 무한루프 명령 프로세스 실행
두 번째 터미널을 열고 kill -9 [PID] 수행 시 yes 터미널에서 [죽었음] 출력되며 yes 프로세스 종료
입력 예 : kill -9 4556

pkill [시그널] [프로세스명] : 프로세스 종료
같은 이름의 명령 모두 종료


포그라운드와 백그라운드

포그라운드

백그라운드

sleep [시간(초)] : 설정 시간만큼 휴식
쉬는 동안 터미널 사용 불가능, PID 반환

활용 예 : sleep 30&
30초 동안 쉬는 프로세스를 백그라운드로 실행 이후 터미널을 사용자에게 반환
하지만 진정한 백그라운드 프로세스는 아님
터미널에 종속되어 터미널 종료 시 프로세스도 종료

nohup : 터미널을 종료해도 프로세스가 실행되도록 함
입력 예 : nohup sleep 300 > sleep.log 2>&1 &
2> : 에러 출력 스트림
&1 : 표준 출력 스트림
sleep.log 파일에 표준 출력과 에러 출력을 모두 출력하라

jobs [%작업 번호] : 현재 실행 중인 작업 목록 출력

옵션 설명
%번호 해당 작업의 정보만 출력
%+ 또는 %% 작업순서가 +인 작업 정보를 출력
%- 작업순서가 -인 작업 정보를 출력
명령 의미
Ctrl+Z 또는 stop [%작업 번호] 포그라운드 작업을 잠시 중단
Ctrl+C 포그라운드 작업을 강제 종료
kill [%작업 번호] 백그라운드 작업을 강제 종료
bg [%작업 번호] 작업 번호가 지시하는 작업을 백그라운드로 전환
fg [%작업 번호] 작업 번호가 지시하는 작업을 포그라운드로 전환
◀ 이전 글 LECTURE, 객체지향프로그래밍II
가상 함수와 추상 클래스
2025-10-30
목록으로 다음 글 ▶ LECTURE, 객체지향프로그래밍II
템플릿과 표준 템플릿 라이브러리(STL)
2025-11-06