Linux / 명령어 / jobs - 현재 셸의 작업 목록 확인
jobs는 현재 Bash 셸이 관리하는 백그라운드 작업과 중지된 작업을 보여 줍니다. 시스템의 모든 프로세스를 조회하는 ps와 범위가 다릅니다.
jobs 명령어란?
셸의 작업 번호는 %1처럼 표기하고, 운영체제 프로세스 ID는 숫자 PID입니다. 한 작업은 파이프라인 등 여러 프로세스로 구성될 수 있습니다. 다른 터미널이나 다른 셸에서 시작한 작업은 현재 셸의 jobs 목록에 나오지 않습니다.
기본 문법
jobs [옵션] [작업지정자]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. help jobs으로 현재 시스템의 설명을 확인하세요.
사용 예제
백그라운드 작업 시작
끝의 &는 명령을 백그라운드 작업으로 시작합니다.
sleep 120 &
현재 셸의 작업 확인
작업 번호, 상태와 원래 명령을 확인합니다.
jobs
PID도 함께 표시
작업 번호와 실제 PID를 대조합니다.
jobs -l
현재 셸의 작업 번호 읽기
jobs는 시스템 전체 프로세스가 아니라 지금 사용 중인 셸에서 시작한 백그라운드·일시 중지 작업을 보여줍니다.
sleep 60 & jobs -l
예시 출력(PID와 작업 번호는 달라짐):
[1]+ 12345 Running sleep 60 &
[1]은 이 셸의 작업 번호, 12345는 프로세스 PID입니다. 다른 터미널이나 새 셸에서 jobs를 실행하면 이 작업이 보이지 않습니다. 셸을 닫아도 작업을 유지해야 한다면 nohup, tmux 또는 서비스 관리자를 검토하세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-l |
작업 상태와 함께 PID를 표시합니다. |
-p |
작업의 프로세스 그룹 대표 PID만 표시합니다. |
-r |
실행 중인 작업만 표시합니다. |
-s |
중지된 작업만 표시합니다. |
사용할 때 주의할 점
jobs는 셸 내장 명령이며 현재 셸의 작업 테이블만 조회합니다. 스크립트나 비대화형 셸에서는 작업 제어가 비활성일 수 있습니다. 예제의 sleep 작업은 시간이 지나면 목록에서 사라지며, 남아 있다면 kill %1처럼 해당 셸의 작업 번호로 종료할 수 있습니다.
자주 묻는 질문
jobs가 비어 있는데 ps에는 프로세스가 보이는 이유는?
jobs는 현재 셸이 시작해 관리 중인 작업만 표시하고, ps는 시스템 프로세스 목록을 조회하기 때문입니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 jobs 관련 공식 문서에서 확인할 수 있습니다.









