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
이 메시지가 표시되면 문제가 있습니까? 그것은 무엇을 의미하며 어떻게 피할 수 있습니까?
답변
응용 프로그램이 터미널에서 연결 해제되어 전경 명령을 방해하지 않고 로그 아웃 후에도 계속 실행되도록 nohup
stdin이나 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 &
이 답변이 확실히 늦었다 고 생각하지만 다른 사람들에게 도움이 될 것입니다.