![nohup 명령에서 IO 오류를 생성하는 프로그램 이름을 LOG로 리디렉션하는 방법은 무엇입니까?](https://linux55.com/image/28546/nohup%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%20IO%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EB%8A%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20LOG%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
백그라운드에서 다른 프로그램을 실행하는 프로그램이 있습니다. 주 프로그램은 programA이고, 주 프로그램에 의해 실행되는 프로그램은 program1a, program1b, program1c입니다.
쉘 연결이 끊어졌는지 여부에 관계없이 계속 실행하려면 프로그램이 필요하므로 이 nohup
명령을 사용합니다.
그러나 각 프로그램에는 아래와 같이 자체 로그 파일이 있습니다.
프로그램 A --> logfileA.txt
프로그램 1a --> logfile1a.txt
프로그램 1b --> logfile1b.txt
프로그램 1c -->logfile1c.txt
하위 프로그램 중 하나에서 오류가 발생하면 오류 메시지가 주 프로그램에 해당하는 LOG 파일에 표시됩니다.
예:
프로그램 A는 다른 루틴에서 호출됩니다. -
nohup nice -10 programA 2>&1 > logfileA.txt
ProgramA 내부에서는 3개의 다른 프로그램을 호출합니다. -
nohup nice -10 program1a 2>&1 > logfile1a.txt nohup nice -10 program1b 2>&1 > logfile1b.txt nohup nice -10 program1c 2>&1 > logfile1c.txt
오류가 발생하면 또는 또는 logfileA.txt
대신에 오류 가 나타납니다 .logfile1a.txt
logfile1b.txt
logfile1c.txt
기본 프로그램의 로그 파일에 표시된 오류를 생성한 프로그램을 어떻게 알 수 있나요?
답변1
리디렉션 순서를 바꿔야 할 수도 있습니다.
nohup nice -10 program1a > logfile1a.txt 2>&1
nohup nice -10 program1b > logfile1b.txt 2>&1
nohup nice -10 program1c > logfile1c.txt 2>&1
"fd 1에서 fd 2 복사"를 의미합니다 2>&1
. 이는 제공된 예에서 "">"를 통해 fd 1이 리디렉션되기 전에 발생합니다.