nohup으로 프로세스를 시작하고 파일 대신 stdout에 쓸 수 있습니까? 아니면 파일과 화면에서?
nohup python start.py &
에 기록 nohup.out
,하지만 난 nohup을 만 헤지 때 연결이 끊어로 의미, 화면에 출력에 싶습니다.
nohup으로 프로세스를 시작하고 파일 대신 stdout에 쓸 수 있습니까? 아니면 파일과 화면에서?
nohup python start.py &
에 기록 nohup.out
,하지만 난 nohup을 만 헤지 때 연결이 끊어로 의미, 화면에 출력에 싶습니다.
답변:
보낸 사람 man nohup
:
표준 입력이 터미널 인 경우 / dev / null에서 리디렉션하십시오. 표준 출력이 터미널 인
nohup.out
경우 가능하면 출력을 추가하십시오$HOME/nohup.out
. 표준 오류가 터미널 인 경우 표준 출력으로 리디렉션하십시오. 출력을 FILE에 저장하려면을 사용하십시오nohup COMMAND > FILE
.
(완전히 의견에 따라 수정)
쉘을 종료하거나 터미널을 닫을 때, 자식 프로세스는 SIGHUP을 전송됩니다 (끊기은 단말기가 UNIX 컴퓨터에 전화 할 때부터 이름이 유래) 그들에게 터미널은 전혀 없다는 것을 더 긴 연결. 또한 쉘 프로세스가 종료되면 하위 프로세스의 stdin, stdout 및 stderr 스트림이 닫힙니다. 일반적으로 이로 인해 자식 프로세스가 종료됩니다. 일반적으로 이것은 사용자없이 프로세스를 계속 실행하지 않기 때문에 좋은 방법입니다.
nohup
프로그램 의 목적은 쉘이 종료되고 터미널 연결이 끊어진 후에도 프로세스가 계속 실행되도록하는 것입니다. 따라서 출력을 터미널로 보내는 것은 목적을 완전히 상실합니다. 내 원래의 답변 ( nohup COMMAND | cat
)은 도움이되지 않았습니다. 터미널이 닫히면 고양이의 출력이 닫히고 고양이가 죽어서 파이프가 끊어지고 SIGPIPE가 nohup 프로세스로 보내져 죽습니다. 나는 목적을 생각하지 않고 질문에 대답했다.
목적을 달성하려면 nohup COMMAND > FILE
출력을 지시 할 파일 이름을 선택하여 실행 하십시오. 그런 다음 tail -f FILE
터미널에서 출력을 보는 데 사용 하십시오.
마찬가지로, 다음과 같은 쉘 구성을 사용할 수 있습니다. COMMAND >FILE 2>&1 </dev/null &
stdio 스트림이 터미널에 연결되지 않은 터미널을 닫은 후에도 계속 실행할 수 있습니다. 또한 zsh에서 쉘 내장 disown
을 실행하여 쉘이 종료 될 때 프로세스를 종료하지 않고 zsh에게 프로세스를 종료하도록 지시하십시오.
tail -f filename
에 쓰여진 내용을 볼 수 있습니다 .
vladimir@lin-mint-cin:~$ tty<br>
/dev/pts/8<br>
vladimir@lin-mint-cin:~$ ln -sf /dev/pts/8 nohup.out<br>
vladimir@lin-mint-cin:~$ nohup ls<br>
nohup: ввод игнорируется, вывод добавляется в 'nohup.out'<br>
2019-05-31-090159.jpg giphy.gif nim_porojects sketchbook
Aptana_Studio_Workspace IdeaProjects nohup.out target
Desktop jack_capture_01.wav Pictures Templates
Documents lib Postman tmp
Downloads mad Projects trace.edn
eclipse Mail prolog_ws uinfild_hill-iskusstvo_shemotehniki_tom_1_izd4-e-1489315100.pdf
eclipse-dsl-workspace Music proxy-secret Videos
eclipse-workspace mygolo Public workspace-dltk
erlang_ex my_golo_ws rust-workspace проекты