목차
리눅스 포그라운드, 백그라운드란(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의 프로세스를 종료 합니다.
'라즈베리파이(Raspberrypi)' 카테고리의 다른 글
[Linux]리눅스 쉘스크립트란? 사용 방법, 예제(Shell Script, 셸) (0) | 2022.08.12 |
---|---|
[Linux]리눅스 환경변수, 쉘이란?(Shell, echo, env, export, bashrc, Environment variable) (0) | 2022.07.28 |
[Linux]리눅스 시스템 자원, 메모리, 프로세스 사용량 확인하기(모니터링) (0) | 2022.07.26 |
[Linux]리눅스 grep 정규식으로 검색하기(|, regex, search) (0) | 2022.07.26 |
[Linux] 리눅스 사용자 권한 정의 및 변경(chomod, read, write, execute, 읽기, 쓰기, 실행) (0) | 2022.07.18 |