동료와의 오랜 토론 후에 이것을 묻는다면 여기에 설명이 필요합니다.
" &"를 명령 줄 에 추가하거나 " "를 사용하여 CTRL-Z백그라운드에서 다시 시작하여 백그라운드 프로세스를 시작합니다 bg. 그런 다음 로그 아웃합니다.
무슨 일이야?
우리는 그것이 SIGHUP에 의해 죽었을 것이라고 확신했지만, 이것은 일어나지 않았습니다. 다시 로그인하면 프로세스가 행복하게 실행되었고에 pstree의해 "채택되었다"고 표시되었습니다 init.
이것이 예상되는 동작입니까?
그러나 그렇다면 nohup명령의 목적은 무엇입니까? 어쨌든 프로세스가 있든 없든 프로세스가 종료되지 않는 것처럼 보입니다 ...
편집 1
더 자세한 내용은 :
- 명령은 실제 콘솔이 아닌 SSH 세션에서 시작되었습니다.
- 명령은 및 / 또는 ; 없이 시작되었습니다 . 그런 다음으로 일시 중지되고 와 함께 백그라운드에서 다시 시작되었습니다 .
nohup&CTRL-Zbg - ssh 세션 이 삭제 되지 않았습니다 . 실제 로그 아웃 ( "
exit"명령)이있었습니다. - 프로세스는
scp파일 복사 작업이었습니다. - 다시 로그인
pstree하면 프로세스가 실행 중이고 하위 프로세스 인 것으로 표시되었습니다init.
편집 2
질문을보다 명확하게 설명 하려면 명령을 사용하는 것처럼 프로세스를 백그라운드로 ( &또는 사용하여 bg) 무시 해도됩니다.SIGHUPnohup
편집 3
수동으로 a SIGHUP를 보내려고 scp했습니다. 종료되었으므로 신호를 무시하지 않습니다.
그런 다음 다시 시작하여 백그라운드에 놓고 로그 오프했습니다. "적용"되어 init계속 실행되어 다시 로그온 할 때 발견했습니다.
나는 지금 당황합니다. SIGHUP모든 로그 오프 로그가 전송 되지 않은 것 같습니다 .
1>/dev/null 2>&1배쉬 등으로 전환 했습니까 ?