내장 옵션 -h를 거부하는 Bash 문서에 대한 설명

내장 옵션 -h를 거부하는 Bash 문서에 대한 설명

문서에 따르면:

쉘이 특정 작업에 SIGHUP 신호를 보내는 것을 방지하려면 disown 내장 함수를 사용하여 작업 테이블에서 제거해야 합니다. 또는SIGHUP을 수신하지 않도록 표시하려면 disown -h를 사용하십시오.

https://www.gnu.org/software/bash/manual/html_node/Signals.html

참고하세요또는견적에서.

disown간단히 사용 하고 -h다시 로그인해도 프로세스가 종료되지 않는다는 것을 확인할 수 있습니다 .

#!/bin/bash

( sleep 10s; echo 1 > b ) &
disown

이 옵션은 불필요한 것 같죠 -h? 그것 없이도 작동한다면 그 목적은 무엇입니까?

답변1

그렇지 않은 경우 -h해당 작업은 활성 작업 목록에서 제거되고, 그렇지 않은 경우에는 -h제거되지 않습니다.

모든 것이 매뉴얼에 있습니다:

 disown [-ar] [-h] [jobspec ...]

       (...)
       If the -h option is given, each jobspec is not removed
       from the table, but is marked so that SIGHUP is not sent to the
       job  if  the shell  receives  a SIGHUP.

jobs작업 거부를 사용하거나 사용하지 않고 실행한 후의 차이점을 확인하세요 -h.

관련 정보