bg,fg,kill,jobs

박태영·2024년 4월 29일

리눅스 기초 명령어

목록 보기
29/30

백그라운드에서 실행

  • 명령어 뒤에 & 을 붙이면 백그라운드에서 처리 가능하다
sleep 400 &
vi temp &

jobs

  • 현재 셸 세션에서 백그라운드에서 실행 중인 작업 목록을 표시한다.
jobs
[1]   Stopped                 sleep 500
[2]-  Stopped                 sleep 600
[3]+  Stopped                 sleep 700
  • jobs에서 프로세스 번호 뒤에 붙은 "+" 기호는 인자없이 fg,bg 명령어를 입력했을때 디폴트로 적용되는 작업임을 의미하고 "-" 기호는 디폴트 작업이 종료되면 그다음 처리되는 작업임을 의미한다.
  • 작업 상황에 따라 Running,Stopped,Done,Killed 등으로 나뉜다

fg

  • 백그라운드에서 실행 중인 작업을 전경(포그라운드)으로 가져온다.
  • 해당 작업을 현재 활성화된 작업으로 전환하여 사용자가 직접 상호작용할 수 있도록 한다.
jobs
[1]   Stopped                 sleep 500
[2]-  Stopped                 sleep 600
[3]   Stopped                 sleep 700
[4]   Running                 sleep 400 &
[5]+  Stopped                 vi temp

fg 		(+기호 가 붙어있는 작업을 포어그라운드로 가져와 실행)
fg %5 	(5번 프로세스를 포어그라운드로 가져와 실행)

bg

  • 일시 중지된 백그라운드 작업을 다시 시작하는 데 사용된다.
[1]-  Stopped                 sleep 500
[2]+  Stopped                 sleep 600
[3]   Stopped                 sleep 700
[4]   Done                    sleep 400
bg	(+ 기호가 붙은 작업을 백그라운드에서 실행한다.)
bg %3 (멈춰있던 3번 프로세스를 실행한다.)

kill

  • 특정 시그널을 프로세스에 보내어 프로세스를 종료하거나 제어할 수 있다.
  • l 옵션을 사용하여 시그널의 목록을 확인할 수 있다

시그널?
프로세스에게 특정한 동작을 지시하는 데 사용되는 신호를 의미한다.

예시

jobs			(작업 목록 확인)
[1]-  Stopped                 sleep 500
[2]+  Stopped                 sleep 600
[3]   Stopped                 sleep 700

kill -9 %1		(9번시그널(종료)를 1번 프로세스에 보냄)
[1]-  Stopped       sleep 500

jobs
[1]-  Killed                  sleep 500
[2]+  Stopped                 sleep 600
[3]   Stopped                 sleep 700
(1번 작업이 Killed 된 상태로 전환됨)

profile
어른 아이

0개의 댓글