백그라운드(Background) 작업과 포어그라운드(Foreground) 작업
리눅스는 멀티태스킹 시스템이므로 명령 실행을 간단히 포어그라운드(Foreground)에서 할 수 있으며,
명령행 뒤에 & 기호를 넣어 백그라운드(Background) 방식으로 명령을 실행할 수 있습니다. 우리가 프롬포트에서 명령을 입력하면
그 명령이 실행되는 상태는 포어그라운드로 실행되는 것입니다. 그 명령 뒤에 백그라운드 실행을 의미하는 기호 앰퍼센드 & 을 붙이면
작업 번호와 PID를 디스플레이 하고 바로 프롬프트가 떨어지며, 명령은 백그라운드에서 실행됩니다.
포어그라운드에서 작업 실행이 장시간 소요되어 다른 작업을 할 수 없는 경우 장시간 소요되는 작업을 백그라운드로 돌리게 되면
포어그라운드에서는 다른 작업들을 할 수 있는 이점이 있습니다.
예) FTP사이틍에서 자료를 전송이 완료될때까지 포어그라운드 상태에서 어느 작업도 수행할 수 없는 단점이 있습니다.
이 경우 FTP를 백그라운드로 실행해 놓으면 포어그라운드에서 다른 명령행을 입력받을 수 있는 상태가 되기 때문에 다른 작업을 수행할 수 있게 됩니다. 그런데 백그라운드로 작업이 실행될 때 그 작업이 샐행되고 있는지 할 수 없습니다. 백그라운드에서 작업이 실행되고있는지 확인하기 위해 서는 jobs 명령을 사용합니다.
jobs 명령이 주어졌을때 나오는 작업목록에서 +는 현재 작업이 실행중 - 는 실행될 작업을 의미합니다.
백그라운드를 포어그라운드로 변경하는 명령어는 fg와 bg명령입니다.
fg : 백그라운드->포어그라운드
bg: 포어그라운드->백그라운드
사용법 :
fg %작업번호, bg %작업번호
현재 포어그라운드에서 실행중인 작업을 바로 백그라운드로 전환할 수 없는데 이럴 때에는 작업을 일시 중단시키는
인터럽션명령(Ctrl + Z) 키를 사용 중단 시킨뒤 bg명령으로 다시 백그라운드에서 실행 시킬 수 있습니다.
백그라운드에서 실행중인 작업이 완료되거나 실행중인 작업을 종료시에는 Ctrl + C 키 명령으로 작업을 끝낼 수 없습니다.
포어그라운드 상태는 가능하지만 백그라운드에서는 이 명령이 적용되지 않으므로 kill 명령을 사용하여야 합니다.
jobs 으로 작업번호 파악뒤 kill %작업번호 명령으로 종료합니다. 또는 pidof 명령으로 pid파악 후 kill -9 pid번호 로 종료합니다.
(축약으로는 kill -9 'pidof mc' 프로세스명 mc를 종료)
'Server > linux공통' 카테고리의 다른 글
커널(kernel)의 이해 (0) | 2019.04.15 |
---|---|
사용자의 기본로그인쉘종류를 설정하는 방법 chsh (0) | 2019.04.15 |
pci slot 현황 파악 (0) | 2019.04.15 |
프로세스(Process) 관리 ps (0) | 2019.04.15 |
허가권(퍼미션)과 소유권 permission, chown, chmod (0) | 2019.04.14 |