패스잇
인프라 & 클라우드 · 중급

백그라운드에서 실행 중인 프로세스를 관리하는 방법을 설명하고, `nohup`과 `&`의 차이점을 구체적인 사용 사례와 함께 설명해 주세요.

힌트 · `nohup`은 세션 종료 시에도 프로세스를 유지하며, `&`는 현재 세션에서 백그라운드 실행을 의미합니다. `disown` 명령어도 고려해 보세요.

프로세스 관리nohup&SIGHUP표준 입출력 리디렉션

모범답안

네, 백그라운드에서 실행 중인 프로세스를 관리하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 명령어 뒤에 &를 붙이는 것입니다. 예를 들어 sleep 100 &를 실행하면 sleep 100 프로세스가 백그라운드에서 실행됩니다. 하지만 이 방법은 터미널 세션이 종료되면 프로세스도 함께 종료될 수 있다는 단점이 있습니다.

nohup은 이러한 문제를 해결하기 위해 사용됩니다. nohup command & 형태로 사용하면, 터미널 세션이 종료되더라도 프로세스가 계속 실행됩니다. nohup은 SIGHUP 시그널을 무시하고, 표준 출력과 표준 에러를 기본적으로 nohup.out 파일로 리디렉션합니다.

&는 단순히 프로세스를 백그라운드로 보내는 역할만 하지만, nohup은 프로세스가 터미널 세션 종료에 영향을 받지 않도록 보호하는 역할을 합니다. 예를 들어, 서버에서 장시간 데이터 처리 작업을 실행해야 할 때 nohup을 사용하면 안정적으로 작업을 완료할 수 있습니다.

추가적으로 disown 명령어를 사용하면 이미 백그라운드로 실행 중인 프로세스를 현재 쉘의 작업 목록에서 제거하여, 쉘 종료 시 해당 프로세스가 종료되지 않도록 할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Linux 면접 질문

← Linux 면접 질문 전체 보기