disown — 셸 작업 목록에서 분리
Linux / 서비스 및 프로세스 관리 / disown.html
셸이 관리하는 작업 목록에서 특정 작업을 제거해 로그아웃 시 신호를 받지 않게 하는 내장 명령.
기본 정보
| 명령어 이름 | disown |
|---|---|
| 한 줄 소개 | 셸이 관리하는 작업 목록에서 특정 작업을 제거해 로그아웃 시 신호를 받지 않게 하는 내장 명령. |
| 제공 | Bash 및 POSIX 셸 내장 |
| 공식 문서 | https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html |
| 지원 운영체제 | Linux, macOS, BSD |
| 설치 여부 | 기본 탑재 (셸 내장) |
| 분류 | 리눅스 서비스·프로세스 (태그: 프로세스·자원 관리 (태그: 작업 제어, 로그아웃, 세션)) |
이 명령어는 무엇인가?
disown은 셸의 작업 테이블에서 작업을 빼서 셸이 더 이상 그 작업을 추적하지 않게 합니다.
nohup 없이 백그라운드로 띄운 작업이 셸 종료 시 함께 정리되는 것을 막을 때 유용합니다.
어떤 문제를 해결하는가?
- SSH 세션 종료 후에도 작업을 유지합니다.
- 셸 종료 시 SIGHUP 전달을 피합니다.
- 작업 목록을 깔끔하게 정리합니다.
- 실수로 종료되지 않게 보호합니다.
주요 기능
작업 분리
작업 번호를 지정해 작업 테이블에서 제거합니다.
- 활용 상황: 로그아웃 후에도 유지할 작업
- 얻는 결과: 셸이 더 이상 추적하지 않음
- 제한 사항: 분리 후에는 jobs에 보이지 않음
HUP 무시 결합
-h 옵션으로 작업이 HUP 신호를 받지 않게 표시합니다.
- 활용 상황: 신호만 막고 추적은 유지할 때
- 얻는 결과: SIGHUP을 무시하는 작업
- 제한 사항: 여전히 작업 테이블에 남음
전체 분리
-a 옵션으로 모든 작업을 한 번에 분리합니다.
- 활용 상황: 여러 작업을 정리할 때
- 얻는 결과: 작업 테이블이 비워짐
- 제한 사항: 되돌릴 수 없음
설치 및 실행
설치 여부 확인
help disown
man bash # disown is a shell builtin
실제 사용 예제
작업 분리
1번 작업을 셸 작업 목록에서 제거합니다.
# Detach job 1 from the shell
disown %1
HUP 무시
HUP 신호를 받지 않도록 표시합니다.
# Mark job 1 to ignore SIGHUP
disown -h %1
전체 분리
모든 작업을 분리합니다.
# Detach every job
disown -a