리눅스, 백그라운드 | 포그라운드 실행이란?

리눅스는 커맨드 라인에서 명령어로 프로세스를 실행합니다. 이때 프로세스 실행 방법은 백그라운드(Background) 실행포그라운드(foreground) 실행 방법이 있습니다. 이 개념을 모르면 포그라운드 실행을 하고 명령어를 추가 입력해 프로세스가 종료되는 실수를 할 수 있습니다.

포그라운드 실행

포그라운드 실행은 하나의 작업을 실행하면 그 작업이 끝날 때까지 기다리고 다시 또 다른 작업을 실행하는 방식입니다. 간단하게 압축을 푸는 명령어인 tar -zxvf도 포그라운드 실행이라 할 수 있습니다. 압축이 모두 풀릴 때까지 사용자는 다른 작업을 수행할 수 없고 기다려야 합니다.

백그라운드 실행

백그라운드 실행은 프로세스를 실행시킴과 동시에 다른 작업을 병행할 수 있는 방식입니다. 예를 들어 몽고DB 서비스를 올릴 때 포그라운드로 실행하면 해당 터미널 창에서는 다른 작업을 더 이상 할 수 없습니다. 다른 터미널 창을 추가로 열어 작업을 수행해야 합니다.

 

반면 백그라운드로 몽고DB 서비스를 올리면 서비스를 올리고 나서도 다른 작업을 할 수 있습니다. 백그라운드로 실행하는 방법은 명령어 뒤에 &를 붙이는 것입니다. 아래와 같이 사용합니다.

# ./mongod &

포그라운드 실행 → 백그라운드 실행

프로세스를 포그라운드로 실행하면 명령창이 활성화되지 않습니다. 이때 프로세스를 백그라운드 실행으로 전환하고 싶다면 작업 중지 명령어인 CTRL + Z를 입력합니다. 그러면 중단된 프로세스가 [숫자] 프로세스명 형태로 나타납니다. 이때 bg 숫자명령어로 백그라운드 실행으로 전환할 수 있습니다.

백그라운드 실행 → 포그라운드 실행

# jobs
[1]+ running 프로세스명
# fg 1
프로세스명

jobs 명령어로 백그라운드로 실행 중인 프로세스를 확인하고 fg 명령어를 통해 포그라운드로 가져옵니다.

반응형

댓글

Designed by JB FACTORY