프로세스 관리 정리

mommers·2026년 3월 18일

Linux

목록 보기
57/59
  1. 프로세스의 개념
  2. 프로세스 관리 명령
  3. 포그라운드, 백그라운드 프로세스와 작업 제어


프로세스?

현재 시스템에서 실행중인 프로그램을 말한다.

  • 프로세스는 부모 - 자식 관계를 가지고 있고, 자식은 또 다른 자식을 가질 수 있다.
  • 모든 프로세스는 부모 프로세스를 가지고있다.
  • 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료

프로세스의 번호?

  • 각 프로세스는 고유 번호 PID 를 가진다.
  • PID 는 시스템의 전원이 꺼지기 전까지, 서로 겹치지 않는다.

프로세스 목록 명령어 ps 정리

현재 실행중인 프로세스의 목록을 보는 명령 : ps

  • 기능 현재 실행 중인 프로세스의 정보를 출력한다.
  • 형식 ps [옵션]
  • 옵션

〈유닉스 옵션〉

  • -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력한다.
  • -f : 프로세스의 자세한 정보를 출력한다.
  • -u uid : 특정 사용자에 대한 모든 프로세스의 정보를 출력한다.
  • -p pid : pid로 지정한 특정 프로세스의 정보를 출력한다.

〈BSD 옵션〉

  • a : 터미널에서 실행한 프로세스의 정보를 출력한다.
  • u : 프로세스 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보를 출력한다.
  • x : 시스템에서 실행 중인 모든 프로세스의 정보를 출력한다.

〈GNU 옵션〉

  • --pid PID 목록 : 목록으로 지정한 특정 PID의 정보를 출력한다.
  • 사용 예 ps      ps -ef      ps aux

주로 사용하는 함수를 정리해보면,

  • ps -ef | grep xxxx : xxxx가 들어간 프로세스 검색
  • ps -f : 프로세스의 자세한 정보 출력
  • ps -aux | grep xxxx : 특정 프로세스 검색(ps -ef | grep 과 비슷)

ps -ef 는 유닉스 스타일, PPID(부모 PID) 확인 가능
ps aux 는 BSD 스타일, CPU/메모리 사용률 확인 가능

STAT에 사용되는 문자의 의미

문자의미비고
R실행 중 (running)
S인터럽트가 가능한 대기 (sleep) 상태
T작업 제어에 의해 정지된 (stopped) 상태
Z좀비 프로세스 (defunct)
STIME프로세스의 시작 날짜나 시간
s세션 리더 프로세스BSD 형식
+포그라운드 프로세스 그룹BSD 형식
l (소문자 L)멀티스레드BSD 형식

포그라운드, 백그라운드 작업

포그라운드 프로세스는 사용자가 입력한 명령에 대한 결과가 출력될 때까지 기다려야 하는 방식으로 처리되고,

백그라운드는 이와 다르게 명령을 실행해두고 백그라운드에서 처리할때까지 포그라운드 영역에서 다른 작업을 진행할 수 있다.

백그라운드 작업으로 실행할 때는

./iot_server 5000 &

이런 식으로 &를 뒤에 붙여주면 된다.

jobs : 작업 제어 명령어

백그라운드 작업을 확인할 수 있다.

현재 서버 1개와, 클라이언트 2개를 각각 백그라운드로 돌려 둔 상황이다. jobs 명령어를 통해 백그라운드에서 돌아가고 있는 작업 목록을 확인 가능하다.

맨 아래쪽에 있는 iot_socket.d에서 실행된 ./iot_client 127.0.0.1 5000 KYM_LIN & 의 같은 경우, ps -ef | grep iot 명령어에서 아래와 같이 출력되었다.

ubuntu    107053   94211  0 19:19 pts/1    00:00:00 ./iot_server 5000
ubuntu    107626  101079  0 19:21 pts/0    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn iot
[1]-  완료                  ./iot_client 127.0.0.1 5000 KYM_LIN
[2]+  완료                  ./iot_client 127.0.0.1 5000 KYM_LIN

여기서 [1] , [2] 옆의 +, - 는 작업 순서 표시와 관련이 있다.

  • + : 가장 최근에 접근한 작업
  • - : + 작업 바로 직전에 접근한 작업

작업 전환하기

명령기능
Ctrl + Z 또는 stop [%작업 번호]포그라운드 작업을 정지한다 (종료하는 것이 아니라 잠시 중단하는 것이다).
bg [%작업 번호]작업 번호가 지시하는 작업을 백그라운드 작업으로 전환한다.
fg [%작업 번호]작업 번호가 지시하는 작업을 포그라운드 작업으로 전환한다.

백그라운드 -> 포그라운드로 가져올 때는 bg %작업번호 를 사용하면 된다.

profile
임베디드 개발자가 되기 위해 공부중입니다!

0개의 댓글