nohup : 입력을 무시하고 stderr을 stdout으로 리디렉션 응용 프로그램을

nohup아래에서 언급 한대로 백그라운드에서 응용 프로그램을 시작하고 있습니다.

root@phx5qa01c:/bezook# nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out &
[1] 30781
root@phx5qa01c:/bezook# nohup: ignoring input and redirecting stderr to stdout

하지만이 메시지를 볼 때마다-

nohup: ignoring input and redirecting stderr to stdout

이 메시지가 표시되면 문제가 있습니까? 그것은 무엇을 의미하며 어떻게 피할 수 있습니까?



답변

응용 프로그램이 터미널에서 연결 해제되어 전경 명령을 방해하지 않고 로그 아웃 후에도 계속 실행되도록 nohupstdin이나 stdout 또는 stderr이 터미널과 같은 장치 가 아닌지 확인하십시오 . 문서 는 무엇이 행동을 설명합니다 :

표준 출력이 터미널 인 경우, 명명 된 유틸리티가 표준 출력에 기록한 모든 출력은 현재 디렉토리의 nohup.out 파일 끝에 추가됩니다. 추가를 위해 nohup.out을 작성하거나 열 수없는 경우, 출력은 HOME 환경 변수에 의해 지정된 디렉토리에서 nohup.out 파일의 끝에 추가되어야합니다. 추가를 위해 파일을 작성하거나 열 수 없으면 유틸리티를 호출 할 수 없습니다.

표준 오류가 터미널 인 경우, 명명 된 유틸리티가 표준 오류에 기록한 모든 출력은 표준 출력과 동일한 파일 설명 자로 리디렉션됩니다.

> exhibitor.out명령 행에 입력 할 때 stdout을 파일로 경로 재 지정했습니다 . 응용 프로그램의 stderr를 stdout과 동일한 파일로 지정해도 괜찮 으면 다른 작업을 수행 할 필요가 없습니다. 또는과 같은 인수를 추가하여 stderr을 다른 파일로 리디렉션 할 수 있습니다 2> exhibitor.err. (알 수없는 사용자에게 감사합니다. 알림에이 대안의 포함을 제안한 이름이 표시되지 않았습니다.)


답변

표준 오류를 표준 출력으로 리디렉션하면 메시지를 제거 할 수 있습니다.

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1 &


답변

내 상황에서는 stdout 및 stderr을 리디렉션하지만 로그 파일에도 다음을 표시합니다.

nohup: ignoring input

이 경고를 제거하려면 다음과 같이 stdin을 리디렉션해야합니다.

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1  </dev/null &

이 답변이 확실히 늦었다 고 생각하지만 다른 사람들에게 도움이 될 것입니다.


답변