프로세스

ps

process status, 현재 세션의 프로세스를 보여 준다

$ ps
  PID TTY          TIME CMD
  5162 pts/0    00:00:00 bash
  5619 pts/0    00:00:00 ps
  • PID→ 프로세스 ID
  • TTY→ 터미널 ID
  • TIME→ CPU 점유 시간 누적값
  • CMD→ 프로세스 이름

ps -e

  • 모든 프로세스 선택

ps -a

  • Session leader 프로세스 선택

ps -f

  • full format
ps -f
UID    PID    PPID  C STIME TTY      TIME     CMD
user   5162   5152  0 13:42 pts/0    00:00:00 bash
user   5624   5162  0 15:06 pts/0    00:00:00 ps -f
  • UID → Username, User ID
  • PPID → 부모 프로세스 ID
  • C → CPU 사용량
  • STIME → 프로세스 시작 시간

ps -l

  • long format
  • F → 프로세스 플래그
  • S → 상태 코드
  • PRI → 실시간 우선 순위
  • NI → 나이스 우선 순위
  • SZ → 사용되는 프로세스 코어 이미지 메모리의 크기
  • C → CPU 누적 사용 수치 (사용 시간 / 전체 시간 %)

이 외 ps -el, ps -ef, ps -ej도 있다.

  • man ps를 읽어 보자

kill

프로세스 죽이는거 아님

시그널(continue, stop 등)을 전송하는 기능

kill -l

  • 시그널 리스트 확인 가능
  • 대표 시그널
    • SIGN → Hang Up, 연결이 끊어졌을 때 보내는 시그널

    • SIGINT → Interrupt, CTRL+C 누르면 발생

    • SIGQUIT → Quit할 때, CTRL+\ 누르면 발생

    • SIGKILL → 강제로 프로세스 kill, (최후의 수단)

    • SIGGTERM → 프로세스 kill 해달라는 요청

    • SIGTSTP → Temporary Stop, CTRL+Z 누르면 발생

      $ kill 13011 # 13011 프로세스에 SIGTERM 시그널 전송
      $ kill -QUIT 13013 # 13013 프로세스에 SIGQUIT 시그널 전송
      $ kill -9 13012 ## 13012 프로세스에 9번 시그널(SIGKILL) 전송 

job control

현재 session에서 제어 터미널을 가진 프로세스

fore-ground process

  • 현재 session에서 제어 터미널을 가진 프로세스

back-ground process

  • 현재 session에서 제어 터미널을 잃은 프로세스

session

멀티 유저 시스템에서 통신 객체(seat or remote)를 구별하기 위함

  • SID == PID인 프로세스를 Session Leader라고 부른다
  • session은 프로세스를 누가 실행했는지 이런 정보를 알 수 가 있다.

제어 터미널, controlling terminal

사용자의 제어를 받는 터미널 장치

제어 터미널을 소유한 프로세스 = fore-ground process +키보드 입력 가능

ps -e | less를 입력했을 때, Session제어 터미널을 가지지 않는 경우 TTY?로 표시된다.

Process group

Process group leader == PID

  • 시그널 전파 기능
  • kill에서 음수PID = 프로세스 그룹시그널 전파
profile
올해로 26세

0개의 댓글