nohup.out 파일을 생성하지 않고 터미널 출력을 유지하려면 어떻게 해야 합니까?

nohup.out 파일을 생성하지 않고 터미널 출력을 유지하려면 어떻게 해야 합니까?

nohup 애플리케이션이 다음으로 리디렉션되는 경우:

nohup bash -c "printf \"command\n\"" &> /dev/null

파일 nohup.out이 생성되지 않지만 명령을 실행하는 터미널에서도 출력이 나오지 않습니다. 명령의 터미널 출력을 보존하지만 파일을 생성하지 않는 방법은 무엇입니까 nohup.out?

답변1

이 시도,

콘솔과 nohup.out 파일에서 합계를 얻으려면 STDOUT명령을 실행하기 전에 다음 명령을 실행하십시오.STDERRnohup

exec >  >(awk '{ print $0; fflush();}' | tee -a nohup.out)
exec 2>  >(awk '{ print $0; fflush();}' | tee -a nohup.out >&2)
nohup bash -c "printf \"command\n\"" &

편집하다:

nohup.out만들고 싶지 않다면 이것을 시도 하십시오

exec >  >(awk '{ print $0; fflush();}')
exec 2>  >(awk '{ print $0; fflush();}')
nohup bash -c "printf \"command\n\"" &

콘솔에 nohup.out표시될 때 및 가 생성 되지 않습니다 STDOUT.STDERR

위의 줄을 스크립트에 넣고 백그라운드에서 실행하세요.

답변2

다음과 같이 실행할 수 있습니다.

nohup process & tail -f nohup.out

또는 사용, 이는 귀하의 요구 사항을 완벽하게 충족할 수 있습니다. 표준 입력에서 읽고 표준 출력 및 파일에 쓰기

nohup process 1>&2 | tee nohup.out &

관련 정보