background 작업과 foreground 작업이란?
리눅스를 사용하다보면 apt-get 등을 이용해서 프로그램을 설치할 수도 있고, git clone 등을 이용해서 부가적으로 다운을 받을 수도 있다.
간혹 작업을 시행했을 때 파일의 용량이 과도하게 많을 때 터미널창에서 다른 작업을 하지 못한채 막연히 기다리고만 있어야하는 경우가 있다. 이러한 경우에 bg 명령어를 사용하여 해결 할 수 있다.
또한 이와 반대로 bg로 밀어냈던 작업을 다시 fg로 끌어 올리고자 할 때 fg 명령어를 이용하여 진행 할 수 있다.
bg와 fg의 원리와 사용법
bg로 프로세스 시작
$./storm supervisor &
프로세스 시작 후 bg로 작업 전환
$bg
프로세서인 supervisor 를 background가아닌 foreground로 실행 한 뒤 bg 명령어를 통해 background 작업으로 전환할 수 있다.
bg작업을 fg로 변환
$fg supervisor
bg로 실행되던 작업을 foreground로 변경 할 수 있다.
현재 background에서 진행중인 작업 확인
$jobs
background에서 진행중인 작업 중지
위 사진처럼 jobs를 통해 진행중인 작업을 확인 할 수 있다. 앞에 있는 [1][2][3]이 각 프로세스의 번호가 된다. kill 명령어를 이용해 각 번호의 작업을 중지 시킬 수 있다.
$jobs $kill %3 $kill %2 $kill %1
fg에서 진행 중인 작업 중지
$jps $kill -9 30206
번호를 이용해 작업을 중지 시킬 수 있다.
그리고..
작업을 종료 하는데에는 순서가 중요하다. stack에서 사용하는 것처럼 LIFO(last in first out)를 사용하여 순차적으로 종료하는게 좋다.