[Linux] 백그라운드 실행 및 2>&1 표준출력에 대한 부분
> $log_file 2>&1 & 부분은 리다이렉션과 백그라운드 실행에 관한 것으로, 각각의 부분은 다음과 같은 의미를 가지고 있습니다:
1. > $log_file: 이 부분은 표준 출력(Standard Output, 보통은 커맨드 라인에 출력되는 내용)을 $log_file이라는 파일로 리다이렉션(즉, 출력을 변경)하는 것을 의미합니다. 즉, 스크립트가 실행되는 동안 출력되는 모든 내용은 $log_file에 지정된 파일에 저장됩니다.
2. 2>&1: 이 부분은 표준 에러 출력(Standard Error, 보통은 오류 메시지)을 표준 출력으로 리다이렉션하는 것을 의미합니다.
즉, 오류 메시지 역시 $log_file에 지정된 파일에 저장됩니다.
2는 표준 에러를, 1은 표준 출력을 나타내며, 2>&1은 "표준 에러를 표준 출력으로 리다이렉션하라"는 의미입니다.
이부분은 일반적으로 사용하지 않아도 잘 됩니다. 계속 생소한 부분!!
3. &: 이 부분은 해당 명령어를 백그라운드에서 실행하라는 의미입니다. 즉, 스크립트를 실행한 터미널이 닫혀도 스크립트는 계속 실행됩니다.
즉, 전체적으로 > $log_file 2>&1 &는 "표준 출력과 표준 에러 출력을 모두 $log_file에 저장하고, 이 작업을 백그라운드에서 실행하라"는 의미입니다. 이렇게 함으로써, 스크립트가 실행되는 동안 발생하는 모든 출력과 오류 메시지를 파일에 저장하고, 터미널이 닫혀도 스크립트가 계속 실행되도록 할 수 있습니다.
● 참고