리눅스에서 Foreground와 Background를 이해하는 것은 중요한 개념이다. 기본적으로 리눅스에서 프로그램을 실행하면 해당 프로세스는 유니크한 ID(PID)로 생성되며 Foreground에서 실행된다. Foreground 프로세스는 사용자와 스크린 및 키보드를 통해 통신할 수 있다. Background 프로세스는 터미널과 연결되지 않으므로 사용자와 통신할 수 없다. 그러나 다른 명령을 실행할 수 있다. Background에서 프로세스를 실행하는 것은 터미널을 해제하거나 SSH 세션을 종료해야 할 때 유용하다.
리눅스에서 Foreground와 Background 프로세스는 터미널과의 연결 여부에 따라 구분된다. 연결된 프로세스를 Foreground Job이라고 하며 연결되지 않은 프로세스를 Background Job이라고 하다. Foreground 프로세스는 사용자와 상호작용하며 Background 프로세스는 사용자와 상호작용하지 않다.
Background 프로세스를 실행하면 해당 프로세스는 키보드 입력을 대기하며, 필요한 경우 기다릴 수 있다. Background에서 프로세스를 실행하는 장점은 프로세스가 완료되기를 기다리지 않고 다른 명령을 실행할 수 있다는 것이다.
foreground
리눅스에서 'foreground'란 용어는 사용자가 직접 터미널과 상호작용할 수 있는 프로세스를 의미한다. 즉, 사용자가 명령을 실행하면 해당 프로세스는 기본적으로 foreground에서 실행되며, 해당 프로세스의 작업이 완료될 때까지는 터미널을 사용할 수 없다. 그러나 프로세스를 중지하거나 종료하면 터미널에 다시 액세스할 수 있다.
프로세스가 foreground에서 실행되면 키보드로부터 입력을 받아들이고 스크린에 출력을 보낼 수 있지만, 만약 foreground 프로세스가 종료되지 않고 계속 실행되면 해당 터미널에서는 다른 작업을 수행할 수 없다.
리눅스에서는 background에서 실행하는 것이 필요한 경우가 있다. 이 경우, 프로세스는 터미널과 분리되어 실행된다. 이렇게 실행되는 경우, 프로세스는 사용자와 상호작용하지 않고 자신이 할 일을 마치면 종료된다.
fg 명령어는 현재 백그라운드로 실행중인 작업을 다시 포그라운드로 전환할 때 사용한다. 이때, 실행중인 백그라운드 작업의 PID(Process ID)를 확인한 뒤, 해당 PID 앞에 %를 붙여 명령어를 입력하다. 예를 들어, 현재 백그라운드에서 실행중인 작업의 PID가 1234라면, 다음과 같이 명령어를 입력한다.
fg %1234
background
리눅스에서 백그라운드(background)란 사용자와 상호작용 없이 터미널에서 실행되는 프로세스이다. 터미널을 사용하여 명령이나 프로세스를 백그라운드에서 실행하면 터미널을 계속해서 사용할 수 있다.
백그라운드에서 실행된 프로세스는 쉘 세션이 종료되어도 계속해서 실행될 수 있다. 백그라운드에서 실행 중인 작업을 확인하려면 "jobs" 명령어를 사용한다.
jobs (옵션x)
사용자가 키보드 입력을 요구하는 프로세스는 백그라운드에서 실행되지 않고 대기한다. 리눅스에서 백그라운드에서 실행되는 대표적인 프로세스로는 웹 서버인 Apache나 Nginx 등이 있다. 백그라운드에서 명령어나 프로세스를 실행하려면 명령어나 프로세스 뒤에 "&" 기호를 붙이다.
명령어 &
참고 문헌 : [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]
'Linux > Linux 명령어' 카테고리의 다른 글
[Linux 명령어] 하드디스크 용량 부족 시 추가 및 연결하기 (0) | 2023.03.13 |
---|---|
[Linux 명령어] 디스크와 디렉토리 연결하기 (mount) + mkfs (0) | 2023.03.13 |
[Linux 명령어] 파티션 나눠 사용하기(Logical Volume, lv) (0) | 2023.03.12 |
[Linux 명령어] Volume Group(vg) 지정, 추가, 삭제, 확인 (0) | 2023.03.12 |
[Linux 명령어] Phygical Volume(pv)관련 명령어 (0) | 2023.03.12 |