패스잇
인프라 & 클라우드 · 심화

systemd의 복잡한 서비스 의존성 관리 및 부팅 프로세스 최적화를 위해 .target 파일과 .service 파일의 관계를 설명하고, 사용자 정의 서비스 유닛을 작성할 때 고려해야 할 고급 옵션과 시나리오를 제시해주세요.

힌트 · .target 파일은 여러 .service 파일을 묶어 특정 상태를 정의하며, .service 파일은 개별 서비스의 실행 방식을 정의합니다. `Wants`, `Requires`, `After`, `Before` 등의 옵션으로 의존성을 명확히 설정합니다.

.target.serviceRequires/Wants/After부팅 최적화ExecStart/Type/User

모범답안

systemd에서 .target 파일은 여러 .service 파일들을 묶어 특정 시스템 상태를 정의하는 역할을 합니다. 예를 들어 multi-user.target은 다중 사용자 환경을 구성하는 데 필요한 서비스들을 묶어 놓은 것이죠. .service 파일은 개별 서비스의 실행 방식, 즉 시작/종료/재시작 방법 등을 정의합니다.

이 둘의 관계를 통해 서비스 의존성을 관리하고 부팅 프로세스를 최적화할 수 있습니다. Requires, Wants, After 등의 옵션을 사용해서 서비스 간의 의존 관계를 명확하게 설정하는 것이 중요합니다. Requires는 필수 의존성, Wants는 권장 의존성, After는 실행 순서를 지정합니다.

사용자 정의 서비스 유닛을 작성할 때는 ExecStart, Type, User 등의 옵션을 신중하게 고려해야 합니다. 예를 들어, 데몬 프로세스를 실행하는 서비스라면 Type=forking 또는 Type=simple을 적절히 선택하고, 보안을 위해 User 옵션을 통해 특정 사용자로 실행되도록 설정할 수 있습니다. 또한, 서비스가 실패했을 때 자동으로 재시작되도록 Restart 옵션을 설정하는 것도 좋은 방법입니다.

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

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

함께 보는 Linux 면접 질문

← Linux 면접 질문 전체 보기