소유하지 않은 프로그램의 STDOUT은 어디로 향합니까? 프로그램의 STDOUT 및

이 질문의 후속 조치로 , 내가 실행 한 프로그램의 STDOUT 및 STDERR이 어디로 disown -h리디렉션 되는지 알고 싶습니다 .



답변

disown프로그램 STDOUT / ERR을 변경하지 않습니다. 리디렉션 한 위치 (예 : >등) 로 계속 이동합니다 . 리디렉션하지 않으면 프로그램을 시작한 터미널로 계속 이동합니다 (터미널을 닫을 때까지 폐기됩니다).

이를 설명하기 위해 터미널에서이를 실행하십시오.

bash -c 'while true; do sleep 1; echo hi; done' &

이것은 매 초마다 “hi”를 출력 할 것이다. 이 경우 disown프로그램 시작 후, “안녕하세요”S는 계속 될 것이다. 쉘의 PID (예 : ps를 사용하여)를 찾아서 중지 시키려면 종료해야합니다.

편집하다:

당신이 후 의견을 바탕으로, 어쩌면 당신이 정말로 원하는 것은 프로그램의 출력을 복구하는 것입니다 disown그것을 에드 그것이 실행 된 터미널을 폐쇄이이 질문에 설명되어 있습니다 :. 사후 원격 nohup을 tcsh가와 ( quack quixote 덕분에).


답변