본문 바로가기
linux

Linux Background Execute - 백그라운드 실행

by 왜 안되지 2022. 3. 16.

먼저하는 요약

Ctrl + z : 현재 실행중인 프로세스 백그라운드로 전환

jobs : 백그라운드 프로세스 확인

fg : 백그라운드 프로세스 포그라운드로 전환

fg %[숫자] : 해당하는 숫자의 백그라운드 프로세스 포그라운드로 전환

kill %[숫자] : 해당하는 숫자의 백그라운드 프로세스 정상적으로 종료

kill -9 %[숫자] : 해당하는 숫자의 백그라운드 프로세스 강제로 종료

실행할때부터 백그라운드로 실행하고 싶으면 명령어 끝에 &


 

GUI 환경에서처럼 CLI 환경에서도 실행하던 프로그램을 백그라운드로 보내 놓는것이 가능하다.

백그라운드로 보내는게 뭐냐면 GUI에서 예를 들면

 

현재 내가 사용중인 프로세스를 포그라운드(foreground) - 사진에서는 fileB

실행은 되고 있지만 포커스 되지 않은 프로세스를 백그라운드(background) - 사진에서는 fileA

라고 한다.

 

이번엔 CLI 에서 예를 들어보자.

nano 를 실행 중이다가 이 실행중인 nano를 백그라운드로 잠시 보내려면 

Ctrl + z 

를 누르면 된다.

나노 실행중
nano 실행중일때 Ctrl + z 눌러서 nano 프로세스를 백그라운드로 보냄

백그라운드 프로세스를 확인 할때는 

jobs

그리고 백그라운드 프로세스를 포그라운드로 전환할때는 

fg

foreground의 준말.

cli 에 fg를 입력해서 nano 프로세스가 포그라운드로 전환됨

 

여러개의 백그라운드 프로세스를 만들수도 있다.

 

백그라운드를 포그라운드로 전환할때는 가장 최근에 실행 했던것부터 차례대로 전환된다.

그림에서는 [1] 빈문서, [2]result.txt, [3]helloWorld.txt 의 순서로 nano를 실행후 백그라운드로 전환했다.

그럼 반대로 백그라운드 프로세스를 포그라운드 프로세스로 전환할때는 

[3] helloWorld.txt , [2] result.txt , [1] result.txt 의 순서로 전환된다.

 

숫자 옆의  공백, -, + 는 이번에 fg 를 입력했을때  어떤 프로세스가 포그라운드로 전환되는지 순서를 보여준다.

+가 가장먼저 실행, -가 그 다음, 공백이 가장 마지막에 실행 되며 이 이후로는 백그라운드 프로세스를 늘리면 다 공백으로 표시 된다.

 

+,- 다음에는 다 공백으로 표시된다.

만약 이 순서가 아니라 먼저 포그라운드로 전환하고 싶은 백그라운드 프로세스가 있으면

fg %[백그라운드프로세스 해당 숫자] 

라고 명령한다.

 

위 예에서 만약 newHtml.html 파일이 아닌 helloWorld.txt 프로세스를 포그라운드로 전환하고 싶다면

fg %3

fg %3 명령으로 helloWorld.txt 프로세스를 포그라운드로 전환

 

정상적으로 백그라운드 프로세스를 종료하고 싶다면

kill %[숫자]

라고 명령을 내리면 되는데

이거는 사실 정상적으로 백그라운드 프로세스를 종료시키는 명령이고

강제로 백그라운드 프로세스를 종료 시키려면

kill -9 %[숫자]

라고 명령을 내린다.

 

참고로 어떤 프로세스를 실행할때 백그라운드에서 돌아가도록 실행할수 있는데 명령어 끝에 & 를 붙이면 된다.

'linux' 카테고리의 다른 글

Daemon introduction - 데몬 개요  (0) 2022.03.17
Linux - Ubuntu 디렉토리 구조  (0) 2022.03.16
파이프라인 , IO Redirection  (0) 2022.03.15
apt-get 명령어 정리  (0) 2022.03.14
linux 기본 명령어 정리  (0) 2022.03.11

댓글