배우는 내용 : [ 명령어 정지, jobs, 포그라운드 (fg), 백그라운드(bg) ]
셸에서 바라본 처리 단위를 잡 (job) 이라고 한다.
$ ls -l / | cat -n | less
위에서 잡은 1개 생성되는 프로세스는 3개 ( ls -l / , cat -n , less)
* 잡은 셸 별로 관리 → 중복된 잡 번호가 할당 될 수도 있다.
명령어를 일시 정지하는 법
명령어 실행 후
ctrl + z
예시
ubuntu:~$ man bash
[1]+ Stopped man bash
ubuntu:~$ jobs
[1]+ Stopped man bash
ubuntu:~$ vim ~/.bashrc
[2]+ Stopped vim ~/.bashrc
ubuntu:~$ jobs
[1]- Stopped man bash
[2]+ Stopped vim ~/.bashrc
ubuntu:~$ jobs -l
[1]- 26288 Stopped man bash
[2]+ 26303 Stopped vim ~/.bashrc
출력 내용 | [1] | - | 26288 | Stopped | man bash |
의미 | 잡 번호 | + 바로 이전에 실행된 작업 | 프로세스 ID | 해당 작업이 일시 중지 | 중지된 명령어 |
추가 설명 | |||||
+ | 현재 쉘 세션이 기본적으로 다루게 될 작업 fg 나 bg 명령어로 조작될 때 기본적으로 선택되는 작업 |
||||
- | + 가 붙은 다음에 선택될 작업을 의미 fg 나 bg 명령어로 조작하려면 작업번호를 입력해주어야 한다. ( "fg %1" ) |
fg 명령어
포그라운드 (foreground, fg) : 사용자의 입력을 받아 들일 수 있는 잡의 상태
$ fg %<잡 번호>
- <잡 번호>를 포그라운드로 전환
사용 예
$ vim file1.txt
# 편집 중에 ctrl + z 입력
$ ls / # 파일 위치 확인
$ fg # vim 으로 전환
bg 명령어
백라운드 (background, bg) : 사용자가 조작할 수 없지만 실행 중인 상태
백그라운드에서 중지된 잡 실행
$ bg %<잡 번호>
바로 백그라운드에서 작업을 실행
<명령어> <실행할 내용> &
$ cp file.txt file-cp.txt &
백그라운드와 포그라운드에서 작업을 하는 이유
포그라운드 (foreground, fg) : 사용자의 입력을 받아 들일 수 있는 잡의 상태
백라운드 (background, bg) : 사용자가 조작할 수 없지만 실행 중인 상태
이점 | 설명 |
시간절약 | 긴 시간이 걸리는 작업을 백그라운드에서 실행 하여 작업이 완료될 때 까지 기다리지 않고 포그라운드에서 다른 작업이 가능 |
멀티 테스킹 | 한 터미널 세션에서 여러 작업을 동시에 실행가능 |
자원 활용 최적화 | 여러 프로세스가 동시에 실행되어야 하는 환경에서, 사용자는 중요한 작업을 포그라운드에서 모니터링하고, 덜 중요한 작업은 백그라운드에서 실행하여 시스템 자원을 효율적으로 활용가능 |
잡과 프로세스 종료
ctrl + c 로 포그라운드로 실행 중인 잡 종료 가능
$ kill %<잡 번호>
$ kill <프로세스 ID(PID) >
# 같은 명령어 TERM (종료) = 15 (TERM 의 고유 번호)
kill 4695
kill -TERM 4695
kill -15 4695
시그널 전체 목록의 예
ubuntu:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
......
'책 > 모두의 리눅스' 카테고리의 다른 글
[ 책 ] [ 모두의 리눅스] 11장 리다이렉션 파일 덮어쓰기 (0) | 2024.03.30 |
---|---|
[ 책 ] [모두의 리눅스] 11장 표준 입출력과 표준 에러 리다이렉션 (0) | 2024.03.30 |
[책] [모두의 리눅스] 10장 프로세스 (0) | 2024.03.25 |
[책] [모두의 리눅스] 9장 슈퍼 사용자 (0) | 2024.03.24 |
[책] [모두의 리눅스] 9장 퍼미션 (0) | 2024.03.24 |