승상의 코딩 블로그

jobs - 복잡하지 않게 하나의 터미널에서 프로그램 관리를 도와주는 명령어 본문

Linux (리눅스)

jobs - 복잡하지 않게 하나의 터미널에서 프로그램 관리를 도와주는 명령어

양승상 2023. 9. 6. 06:55

수 많은 터미널과 프로그램 실행 후 블락된 터미널

저는 리눅스에서 분석 Tool 등을 많이 실행합니다.

프로그램을 실행하다보면 터미널창이 블락되기 때문에 새로운 터미널창을 생성해야 합니다.

(위 사진에서 test.sh 를 실행한 뒤, 프롬프트가 생기지 않습니다. 다음 명령어를 입력할 수 없다는 것을 의미합니다.)

이렇게 사용하다보니 터미널창 관리가 매우 힘들어집니다.

 

"&" 를 명령어 뒤에 붙이면 백그라운드에서 실행됩니다.

그래서 저는 명령어뒤에 "&" 를 붙여서 백그라운드로 프로그램을 실행한 뒤 하나의 터미널에서 관리하기로 했습니다.

하지만 백그라운드로 프로그램을 돌리니 문제가 발생합니다.

백그라운드로 실행되는 프로그램을 확인하거나 그 프로그램을 종료해야 했기 때문입니다.

 

이 때, 사용할 수 있는 명령어가 "jobs" 라는 명령어 입니다.

help jobs

Jobs 명령어는 man 매뉴얼로 볼 수 없다. bash 쉘에 built-in 되어 있기 때문이다.

bash 내장 함수는 help 명령어로 확인할 수 있다. 

jobs

jobs

백그라운드로 스크립트(프로그램)을 하나 실행한다.

test.sh 는 10초간 딜레이는 주는 스크립트이다.

sh test.sh 에 &를 붙여 터미널이 블락되지 않고 백그라운드로 실행되도록 한다.

백그라운드에 있는 프로그램은 jobs 명령어를 통해 확인할 수 있다.

출력값 : [1]+ Running sh test.sh&  -> [1] 은 작업번호이다. Running 은 프로그램의 상태를 나타낸다. 

 

프로그램이 종료되었을 때쯤, 다시 jobs 를 입력하면 프로그램이 완료(Done)되었다고 볼 수 있다.

다시 jobs 를 입력하면 완료되었다고 알려줬던 프로그램은 출력하지 않는다.

kill %작업번호

"kill %작업번호" 명령어를 통해 백그라운드에서 실행되는 프로그램을 종료할 수 있다.

종료하고 jobs 를 입력하면 종료되었다고 뜬다. 다시 jobs 를 입력하면 종료되었다고 보여줬던 작업들을 출력하지 않는다.

 

반응형
Comments