Job Control은 프로세스를 실행하는 방법이 아니라, 실행 이후 상태를 어떻게 제어할 것인가에 대한 구조다. 이 글은 foreground, background, stopped 상태가 signal을 통해 어떻게 전이되는지, 그리고 jobs, fg, bg가 어떻게 하나의 제어 모델을 이루는지를 설명한다.
stdout과 stderr를 합칠지 분리할지는 단순한 쉘 문법 선택이 아니다. 이 글은 >, 2>, 2>&1, /dev/null, 파이프를 기준으로 로그를 언제 통합하고 언제 분리해야 하는지 설명한다. 핵심은 출력 문법이 아니라 데이터 흐름과 오류 흐름을 어떻게 설계할 것인지에 있다.