nohup: 입력을 무시하고 stderr를 stdout으로 리디렉션합니다.

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

이 메시지를 보면 문제가 없을까요? 이는 무엇을 의미하며 어떻게 방지할 수 있나요?

답변1

애플리케이션이 터미널에서 연결 해제되어 포그라운드 명령을 방해하지 않고 로그아웃한 후에도 계속 실행되도록 하려면 nohupstdin, stdout 및 stderr이 터미널과 유사한 장치가 아닌지 확인하세요. 이것문서수행한 작업을 설명합니다.

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

표준 오류가 터미널인 경우 지정된 유틸리티가 해당 표준 오류에 기록한 모든 출력은 표준 출력과 동일한 파일 설명자로 리디렉션되어야 합니다.

> exhibitor.out명령줄을 입력하면 stdout을 파일로 리디렉션합니다. 애플리케이션의 stderr을 stdout과 동일한 파일로 지정하는 데 동의하면 다른 작업을 수행할 필요가 없습니다. 또는 매개변수를 추가하여 이 작업을 수행할 수 있습니다(예: 2> exhibitor.err이 대안을 포함하도록 제안한 알 수 없는 사용자에게 감사드립니다. 내 알림에 이름이 표시되지 않았습니다.)

답변2

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

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 &

답변3

제 경우에는 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 &

나는 이 답변이 당신에게 확실히 늦었다는 것을 알고 있지만 아마도 다른 사람에게 도움이 될 것입니다.

관련 정보