라즈베리파이(Raspberrypi)

[Linux]리눅스 프로세스 포그라운드, 백그라운드란? 사용방법(foreground, background, kill, ps, process)

끄적끄적아무거나 2022. 7. 27. 09:06
반응형

 

목차

     

     

     

     

     

     

    리눅스 포그라운드, 백그라운드란(foreground, background)?

     

    리눅스는 쉘(셸, Shell) 명령어로 프로세스가 실행됩니다. 이때 Shell 은 기본적으로 포그라운드(Foregournd)로 실행됩니다. 포그라운드는 명령어가 프롬프트를 빠져나오지 못하고 프로세스가 완료 되거나 다른 입력을 기다려야 합니다.

     

    반면에 백그라운드(Background)는 명령어가 Shell Prompt를 빠져나와서 프로세스를 진행하고 Shell에서 다른 작업을 할 수 있게 됩니다.

     

    Shell이 기본적으로 포그라운드에 실행되는 데 명령어 끝에 &(And) 기호를 붙이면 백그라운드에서 동작 합니다. 

     

    &

     

    또는 이미 진행중인 프로세스에 bg 명령을 입력 해서 Background로 변경하고 이 것을 다시 fg를 입력해서 foreground로 변경할 수 있습니다.

     

    bg
    fg

     

    아래 예제를 통해 쉽게 이해해보겠습니다. 

     

     

     

    리눅스 포그라운드, 백그라운드 실습

     

    우선 프로세스가 백그라운드인지 포그라운드인지 확인을 위해 sleep 100 명령을 사용해서 100초간 멈추는 동작을 실행하겠습니다. 

     

    예제 코드>>

    sleep 100 &를 사용해서 백그라운드에서 명령을 실행하였습니다. 프로세스 ID 1551번으로 계속 동작하고 있음을 확인할 수 있습니다. 

     

     

     

     

    아래는 sleep 실행 후 백그라운드로 변환하고 kill을 사용해서 프로세스를 종료하는 예제 입니다.

     

    예제 코드>>

    sleep 100을 실행하면 default로 포그라운드에서 동작 합니다. 위와 같이 Ctrl+z키를 사용해서 프로세스를 잠시 중단하고 bg 명령어로 background로 변환합니다. 

    그리고 ps 명령으로 프로세스를 확인하면 STAT에서 동작하고 있음을 확인할 수 있습니다.

    kill 을 사용해서 1580 ID의 프로세스를 종료 합니다. 

    반응형