본문 바로가기
개발자 일지/Linux

[리눅스 기초]백그라운드, 포그라운드 프로세스

by 네빌링 2021. 5. 6.
반응형

-리눅스에서 프로세스가 실행되는 방식인 포그라운드, 백그라운드 프로세스를 학습한다.

-생활코딩의 리눅스 강의를 바탕으로 학습 및 보충학습하였다.

-ubuntu 12.10을 사용하였다.


포그라운드와 백그라운드란

 프로세스가 실행되는 방식에는 두 가지가 있다. 포그라운드(foreground)와 백그라운드(background)인데 해석 그대로 앞과 뒤에서 실행되는 프로세스를 의미한다.

 포그라운드는 터미널에서 우리가 작업할 때 화면에 출력된 결과를 보고 명령을 입력하는 대화식 작업을 한다. 명령을 실행하고 결과 출력때까지 기다리는 방식으로 처리된다.

 백그라운드는 포그라운드 프로세스가 실행되는 동안에 뒤에서 다른 프로세스를 실행하여 한 터미널에서 여러 프로세스를 동시에 실행한다. 데몬, 백신 프로그램같은 것이 예이다.

 

실습1 - 백그라운드 프로세스로 전환(ctrl+z), 백그라운드 프로세스 보기(jobs)

 먼저 nano bgtest라는 명령어로 bgtest라는 파일을 만들어 nano 편집모드로 들어간다. 그리고 ctrl+z명령어를 입력하면 백그라운드 프로세스로 전환된다. 그리고 현재 실행중인 백그라운드 프로그램을 보려면 jobs라는 명령어를 사용하여 확인할 수 있다.

  • jobs : 현재 실행중인 백그라운드 프로세스를 보여줌. 앞에 +(플러스)와 -(마이너스) 표시가 있는데, +는 지금 실행시킨 것이며 -는 전에 실행시킨 것을 의미.

nano bgtest를 2번실행시켰기 때문에, jobs명령어 후에 2개의 백그라운드 프로세스를 확인할 수 있다.

 

실습2 - 포그라운드 프로세스 전환(fg)

 백그라운드 프로세스에서 가장 fg 명령어를 입력하면 다시 포그라운드 프로세스로 전환시킬 수 있다.

  • fg : 가장 최근에 실행시킨 백그라운드 프로세스를 포그라운드로 전환. jobs 명령시 +표시가 된 백그라운드 프로세스가 포그라운드로 전환됨.

 가장 최근의 백그라운드 프로세스가 아니라 이전의 특정 백그라운드 프로세스를 실행시키려면 fg 뒤에 옵션을 주면 된다. jobs를 실행시키면 앞에 번호로 넘버링이 되어 있는데 fg %번호로 원하는 백그라운드 프로세스를 포그라운드로 전환시킬 수 있다.

 

fg %3을 입력하면 3번째 nano test3 명령 프로세스가 포그라운드로 전환됨

 

실습3 - 백그라운드 프로세스 끝내기(kill)

 백그라운드 프로세스를 끄고 싶을 때는 kill명령어를 사용한다.

  • kill %번호 : 번호에 맞는 백그라운드 프로세스를 종료(terminate)

jobs로 백그라운드 프로세스들 확인 후 kill %5 명령어로 5번째 백그라운드 프로세스(man ls)를 종료시킴

jobs로 우선 백그라운드 프로세스를 확인한 후, kill %5명령어로 5번째 백그라운드 프로세스를 종료했다. 이후 jobs 명령을 다시 해보면 5번 백그라운드 프로세스가 정상적으로 종료되었음을 확인할 수 있다.

반응형