Post

Linux 프로세스 잡 관리

프로세스를 관리하는 job과 관련된 내용을 기록합니다.

Linux 프로세스 잡 관리

Shell Job 관리

jobshell에서 실행되는 프로세스를 의미하며, shell은 내부적으로 job table로 해당 프로세스 정보를 관리합니다.

  • Foreground job : 현재 shell에서 실행되는 작업
  • Background job : 현재 shell에서 실행되지만, shell을 block하지 않고 백그라운드에서 실행되는 작업

1. Job 확인

  • jobs 명령어로 현재 shell에서 실행 중인 job 확인 가능
1
2
3
$ sleep 1000 &
$ jobs
[1]+  Running sleep 1000

2. Job 종류

종류설명
Foreground job현재 shell에서 실행되는 job
Background jobshell을 block하지 않고 실행되는 job

3. 주요 명령어

명령어설명
ctrl + zforeground job을 일시 중지하고 background로 보냄
jobs현재 shell에서 실행되는 job 확인
jobs -ljob number, 상태, PID, command 확인
fg %n일시 중지된 n번 job을 foreground로 가져옴
bg %n일시 중지된 n번 job을 background로 재개
kill %nn번 job 종료 (주의: % 없으면 PID가 n인 프로세스를 종료)

4. 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ sleep 1000 &   # background job 실행
$ jobs
[1]+  Running sleep 1000

$ sleep 1000     # foreground job 실행
$ ctrl + z       # 일시 중지 후 background로 이동
[2]+ Suspended sleep 1000

$ jobs
[1]-  Running sleep 1000
[2]+  Suspended sleep 1000

$ bg %2          # 2번 job을 background로 재개
[2]+ Continued sleep 1000

$ jobs
[1]+  Running sleep 1000
[2]-  Running sleep 1000

$ fg %1          # 1번 job을 foreground로 가져오기
[1]- Running sleep 1000
This post is licensed under CC BY 4.0 by the author.