배경 프로세스와 전경 프로세스란?
리눅스에서 프로그램을 실행하면 프로세스가 생성된다. 이 프로세스는 두 가지 상태로 실행될 수 있다: 전경(foreground)과 배경(background)이다.
전경 프로세스는 터미널을 점유하며 사용자의 입력을 기다린다. 반면 배경 프로세스는 터미널 뒤에서 조용히 실행되어 다른 명령어를 입력할 수 있게 한다.
BG 명령어: 프로세스를 배경으로 보내기
BG 명령어는 현재 중지된 작업을 배경에서 계속 실행하도록 한다. 사용 방법은 다음과 같다:
- 실행 중인 프로세스를 Ctrl+Z로 중지한다.
bg
명령어를 입력한다.
예시:
$ sleep 100
^Z
[1]+ Stopped sleep 100
$ bg
[1]+ sleep 100 &
이 예시에서 sleep 100
명령은 100초 동안 대기하는 프로세스를 만든다. Ctrl+Z로 중지한 후 bg
명령으로 배경에서 실행을 계속한다.
FG 명령어: 배경 프로세스를 전경으로 가져오기
FG 명령어는 배경에서 실행 중인 프로세스를 전경으로 가져온다. 사용 방법은 다음과 같다:
jobs
명령어로 배경 작업 목록을 확인한다.fg %작업번호
명령어를 입력한다.
예시:
$ jobs
[1]+ Running sleep 100 &
$ fg %1
sleep 100
이 예시에서 jobs
명령으로 배경 작업을 확인한 후, fg %1
명령으로 첫 번째 작업을 전경으로 가져온다.
작업 번호와 프로세스 ID
리눅스 시스템은 각 프로세스에 고유한 프로세스 ID(PID)를 할당한다. 작업 번호는 현재 셸 세션에서 백그라운드 작업을 구분하는 데 사용된다.
- 작업 번호는
%
로 시작한다. 예:%1
,%2
- PID는 숫자로만 이루어져 있다. 예:
1234
,5678
jobs -l
명령어를 사용하면 작업 번호와 PID를 함께 볼 수 있다:
$ jobs -l
[1]+ 1234 Running sleep 100 &
BG와 FG 명령어의 활용
BG와 FG 명령어는 다음과 같은 상황에서 유용하다:
- 긴 시간이 걸리는 작업 실행: 파일 다운로드나 대용량 데이터 처리 같은 작업을 배경에서 실행할 수 있다.
- 여러 작업 동시 관리: 여러 프로그램을 동시에 실행하고 필요에 따라 전경과 배경을 오갈 수 있다.
- 시스템 리소스 효율적 사용: CPU 집약적인 작업을 배경에서 실행하여 다른 작업을 계속할 수 있다.
리눅스의 BG와 FG 명령어는 프로세스 관리를 효율적으로 할 수 있게 해주는 강력한 도구다. 이 기능들을 잘 활용하면 터미널 작업의 생산성을 크게 향상시킬 수 있다.