당신 은 정말 nohup 과 & 를 사용 할 줄 압 니까?

1358 단어
nohup 과 & 의 용법 과 차 이 를 검색 하면 대량의 블 로 그 를 찾 을 수 있 고 내용 이 거의 같 습 니 다.본 고 는 블 로 그 를 바탕 으로 검색 한 블 로 그 를 몇 편 본 후에 다음 내용 을 보 는 것 을 권장 합 니 다 (물론 직접 봐 도 괜 찮 습 니 다). 당신 이 얻 을 수 있 을 것 이 라 고 믿 습 니 다.
중국어 로 nohup 과 & 를 검색 하면 99% 의 글 이 알려 줍 니 다. nohup 은 프로 세 스 가 SIGHUP 신 호 를 무시 하고 프로 세 스 를 배경 에서 실행 할 수 있 습 니 다.셸 이 종 료 된 후에 도 프로 세 스 를 실행 하려 면 nohup 과 & 를 결합 하여 사용 할 수 있 습 니 다. 즉,
nohup your_command &

이 방법 은 틀림없이 문제 가 없 을 것 이다.
그러나 한 가지 문 제 를 생각해 보 세 요. 우선, 저 는 bash 에서 명령 을 수행 하고 & 만 사용 합 니 다.
command &

그리고 이 bash 를 종료 하고 bash 를 다시 시작 합 니 다. 방금 그 프로 세 스 가 있 었 습 니까?여기 5 초 남 겨 두 고 생각 할 게 요.
정 답 은 일반적인 상황 에서 도 이 과정 은 여전히!(믿 지 않 는 독 자 는 스스로 테스트 할 수 있다) 그러면 여기 서 많은 독자 들 이 의문 을 가지 게 될 것 이다. & 프로 세 스 를 배경 에서 실행 시 킬 뿐 exit 후 배경 프로 세 스 도 kill 되 지 않 을 까?SIGHUP 신 호 를 무시 하 는 것 은 nohup 의 기능 이 어야 합 니 다. 저 는 nohup 을 사용 하지 않 았 는데 요?다른 블 로그 들 은 다 틀 렸 나 요?
사실 블 로 그 는 틀 리 지 않 았 다.문 제 는 bash 기본 상황 에서 exit 시 배경 프로 세 스 처럼 SIGHUP 신 호 를 보 내지 않 습 니 다!!다음 명령 을 통 해 확인 할 수 있 습 니 다:
shopt | grep huponexit

이 명령 의 결과 가 off (기본 값 은 off) 라면 exit bash 에 서 는 배경 프로 세 스에 SIGHUP 신 호 를 보 내지 않 기 때문에 종료 후에 도 프로 세 스 가 존재 합 니 다. nohup 을 사용 하지 않 아 도 됩 니 다!물론 huponexit 를 true 로 설정 하고 bash exit 후에 도 프로 세 스 를 실행 하려 면 nohup 을 사용 해 야 합 니 다!
마지막 으로 실천 은 참된 지식 을 낳는다!

좋은 웹페이지 즐겨찾기