🚀 94sssh
Published on

2025.09.26

[모두의 리눅스] - 10. 프로세스와 잡

10.1. 프로세스란

프로세스: 메모리 위에 올린 프로그램, 리눅스 커널은 프로세스에 고유한 ID를 할당해서 관리

ps 명령어: 프로세스 목록 표시

ps는 현재 시스템에서 실행 중인 프로세스 목록을 출력

$ ps # 윈도우에서 실행
      PID   TTY     STIME COMMAND
     1900  cons0 00:00:00 /usr/bin/ps
     1800  cons0 00:00:00 /usr/bin/bash

PID는 프로세스 ID, CMD는 실행한 명령어, TTY는 터미널을 의미. TTY가 ?인 경우는 데몬.

  • 데몬(daemon): 터미널 관계없이 돌아가는 프로세스
$ ps
$ ps xf # 다른 터미널의 프로세스, 데몬 등 실행 중인 모든 프로세스를 출력
$ ps ax # 시스템 프로세스를 포함한 모든 프로세스 출력

옵션 형식
주류는 BSD 옵션

  • UNIX 옵션: -를 사용해 옵션 지정 ps -aef
  • BSD 옵션: -없이 옵션 지정 ps xf

10.2. 잡

: 셸에서 바라본 처리 단위

프로세스는 시스템 전체에 ID가 고유하지만, 잡은 셸별로 관리되기에 서로 다른 셸의 잡은 번호가 중복될 수 있음. 현재 잡 목록 확인은 jobs명령어를 사용. 현재 잡은 +로 표시됨.

잡 명령어에서 번호 앞에 %를 붙임.

$ jobs

명령어를 일시 정지하는 법

Ctrl + z

명령어 작동 중 Ctrl + z로 일시 정지할 수 있음

fg 명령어: 잡을 포그라운드로 전환

포그라운드: 사용자 입력을 받아들일 수 있는 잡 상태

fg명령어로 잡을 포그라운드로 전환할 수 있음

$ fg %1 # 잡 번호 1을 포그라운드로 전환

잡 번호를 생략하면 현재 잡이 포그라운드로 전환

bg 명령어: 잡을 백그라운드로 전환

백그라운드: 사용자가 조작할 수 없는 잡 상태

bg명령어로 잡을 백그라운드에서 실행할 수 있음. 프롬프트가 표시되어 셸을 사용할 수 있지만 작업은 백그라운드에서 실행되게 됨. 백그라운드의 잡을 확인하면 실행 중으로 표시됨.

잡의 상태 전이

상태내용
포그라운드사용자가 조작 o, 실행 중인 상태
백그라운드사용자가 조작 x, 실행 중인 상태
정지일시 중단 상태

포그라운드에서 백그라운드로 가려면 그 전에 먼저 잡을 정지한 후, 백그라운드로 실행해야 함.

10.3. 잡과 프로세스의 종료

포그라운드로 실행 중인 잡은 Ctrl + c로 종료
백그라운드로 실행 중인 잡은 kill %번호 명령어로 종료

프로세스도 kill 프로세스ID명령어로 종료,