- 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명령어로 종료,