[Linux] Job 컨트롤
Linux에서는 여러 개의 프로그램을 동시에 실행시킬 수가 있는데,
하나의 콘솔창에서는 보통 하나의 Job만 foreground에서 실행이 가능하고, 나머지 Job은 Background에서 실행이 된다.
이 포스트에서는 Foreground / Background Job을 관리하는 방법에 대해서 알아본다.
1. Job
현재 콘솔에서 실행되고 있는 Job들의 리스트를 확인하는 명령어
> jobs |
2. 백그라운드에서 프로그램을 실행하는 방법
명령 끝에 '&' 를 붙여준다. 실행 하게 되면 job id와 프로세스 id 를 보여준다. (아래 예제에서는 job id = 1, process id = 910)
> sleep 1000 & [1]+ 910 |
3. 현재 실행중인 명령을 잠시 중단하는 방법
명령어 실행 후 ^Z (ctrl + z) 를 입력한다.
> sleep 1000 & ^Z [1]+ Stopped sleep 1000 |
Stopped 라고 나오지만 실제로는 종료되지 않은 상태로 남아 있다. (jobs 명령어로 확인이 가능)
4. 잠시 중단한 명령을 백그라운드로 보내는 방법
bg %[id]
> bg %1 [1]+ sleep 1000 & |
5. 백그라운드에서 실행중인 job을 foreground로 바꾸는 방법
fg %[id]
> fg %1 sleep 1000 |
6. 실행 중인 명령을 중단하는 방법
명령어 실행 후 ^C (ctrl + c) 를 입력한다.
참고로 백그라운드에서 작업 중인 명령을 종료하기 위해서는 해당 job을 foreground로 넘긴 후 ^C 를 입력하면 된다.
혹은 kill 명령어를 이용해서 해당 process 를 종료 하면 된다. (process id 는 ps 명령어로 검색한다.)
> kill 910 |