리눅스/유닉스 시스템은 한 번에 여러 작업을 동시헤 할 수 있는 다중작업 시스템이다.
1. foreground
사용자가 한 명령어를 실행시키고 그 명령의 실행이 종료되어 결과가 출력될 때까지 다른 명령어를 실행하지 않고 기다리는 경우를 foreground로 수행한다고 한다.
1-1) sleep 명령어를 foreground로 수행하기
sleep 명령어는 지정된 시간만큼 실행을 중지한다.
2. background
foreground와는 반대로 background는 사용자가 하나의 명령어를 실행시킨 후에 그 실행이 끝날 때까지 기다리지 않고, 다른 명령어를 실행시켜 결과적으로 시스템 내에 여러개의 작업이 동시에 실행되도록하는 경우를 말한다.
background에서 실행하는 것은 시간이 오래 걸리는 긴 작업일 때 유용하다.
$ 명령어 & // 명령어 끝에 &를 붙여서 해당 명령어를 background로 실행시킬 수 있다.
2-1) sleep 명령어를 background로 수행하기
sleep 명령어를 background로 수행하면 다음 명령어를 실행시킬 수 있다.
* 현재 진행되고 있는 작업들을 jobs 명령어를 사용하면 볼 수 있다.
이때 [1]은 작업 번호이고 26650은 프로세스 ID를 나타낸다.
2-2) foreground로 수행 중에 background로 전환 (ctrl ^ z 및 bg 명령어 사용)
sleep 명령어를 foreground로 수행 -> ctrl^z 로 중단 -> bg %작업번호 사용하여 bg로 실행
2-3) background로 수행 중에 foreground로 전환 (fg 명령어 사용)
'DKE > 리눅스 프로그래밍' 카테고리의 다른 글
[리눅스] C 컴파일러 (gcc) / 2022.12.08 (0) | 2022.12.08 |
---|---|
[리눅스] kill 명령어 / 2022.12.04 (0) | 2022.12.04 |
[리눅스] tar와 gzip / 2022.12.03 (0) | 2022.12.03 |
[리눅스] 히스토리 / 2022.12.01 (0) | 2022.12.01 |
[리눅스] Redirection (명령의 결과를 파일로 보내는 것) / 2022.12.01 (0) | 2022.12.01 |