STDOUT 또는 STDERR에 대한 입력을 생성하는 두 개의 백그라운드 프로세스(예: 두 개의 설치 스크립트)가 있는 경우 두 출력 스트림을 쉽게 구별할 수 있는 방법이 있습니까? 각 출력 행에 다른 레이블을 붙인 sed 프로그램을 통해 각 프로세스의 출력을 파이프할 수 있다고 가정하지만 더 간단한 것을 찾고 있습니다.
답변1
가장 간단한 해결책은 두 개의 백그라운드 작업을 시작하고 해당 출력을 파일로 리디렉션하는 것입니다.
utility1 >utility1.out 2>utility1.err &
utility2 >utility2.out 2>utility2.err &
이것의 또 다른 이점은 출력으로 인해 터미널이 막히지 않는다는 것입니다.
분명히 오류 스트림과 출력 스트림을 동일한 파일로 리디렉션할 수도 있습니다.
utility1 >utility1.out 2>&1 &
utility2 >utility2.out 2>&1 &
다음을 사용할 수도 있습니다 tmux
.
tmux new "utility1" ';' split "utility2"
tmux
모든 명령은 종료 후 즉시 종료됩니다. 이를 방지하려면 "utility"
로 변경하십시오 "utility;read"
. 이렇게 하면 를 누를 때까지 창이 열린 상태로 유지됩니다 Enter.