나는 우분투에서 초보자입니다. 나는 명령을 배웠다
nohup [command]
- <command>
끊기 신호에 면역
"전화 끊기 신호에 대한 면역 "의 의미를 이해할 수 없습니다 . 어떤 종류의 신호에 대해 이야기하고 있습니까? 이 명령을 예제와 함께 사용하는 방법을 알려주십시오.
나는 우분투에서 초보자입니다. 나는 명령을 배웠다
nohup [command]
- <command>
끊기 신호에 면역
"전화 끊기 신호에 대한 면역 "의 의미를 이해할 수 없습니다 . 어떤 종류의 신호에 대해 이야기하고 있습니까? 이 명령을 예제와 함께 사용하는 방법을 알려주십시오.
답변:
gedit
터미널에서 텍스트 편집기를 열어 작업하고 있다고 가정하겠습니다. 닫기 전에 터미널을 닫으면 터미널을 닫 gedit
자마자 gedit도 닫힙니다. 무슨 일이야? 는 gedit
터미널에서 자식 프로세스로 실행됩니다. 터미널을 닫으면 중단SIGHUP
프로세스 ( )가 하위 프로세스를 종료하는 프로세스로 전송됩니다.
반면에 gedit
부모 터미널을 닫은 후에도 자식 프로세스 (여기서 )가 계속 실행되도록하려면 프로세스 면역이 끊기 신호를 원할 것입니다. 따라서 터미널을 닫으면 자식 프로세스가 닫히지 않습니다. nohup
정확히이 일을합니다.
nohup
터미널 에서 명령을 연결 해제하지 않으면 스크립트가 SIGHUP을 무시하고 stdout / stderr을 nohup.out 파일로 경로 재 지정하므로 로그 아웃 한 후에도 백그라운드에서 명령이 계속 실행될 수 있습니다. 쉘 / 터미널을 닫거나 로그 오프하면 명령이 더 이상 해당 쉘의 자식이 아닙니다. init 프로세스에 속합니다. 검색 pstree
하면 프로세스 1 (init)이 소유하고 있음을 알 수 있습니다. 전경이 더 이상 존재하지 않으므로 전경으로 다시 가져올 수 없습니다.
@sourvac이 작성한 것 외에도 사람들이 텍스트 전용 벙어리 터미널, 종종 (원래 아날로그 110 보드) 모뎀을 통해 로그인 한 Back In The Day의 유산입니다. "전화 끊기"는 문자 그대로 "전화를 끊습니다" ".
전화 끊기 및 전화 끊기 후에도 끊기 신호에 영향을받지 않는 pid 는 계속 실행 됩니다. 시간이 지날 때까지 몇 시간 동안 작업을 실행했을 때 속도가 느린 컴퓨터 에서 매우 유용했습니다. 로그인 상태를 유지할 수 없었습니다. 다른 사람이 터미널을 사용해야하고 전화를 사용해야했습니다. 회선의 정적 연결이 "bzzt" 등).
disown
보다 나은 대안nohup
입니다.command &
또는 로 명령의 배경을Ctrl-Z
지정한 다음을 사용disown
하여 셸에서 분리하십시오.