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