RHEL 계열 관리 · 서비스 유닛 파일 작성 · 퀴즈
퀴즈: 유닛 파일
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`systemctl start` 가 30초 멈춰 있다 실패하는데 프로세스는 떠 있습니다. 가장 유력한 원인은?
- 필요한 의존 서비스가 떠 있지 않다
- 실행 사용자의 권한이 모자라다
- Type 이 실제 프로세스 동작과 맞지 않는다
- EnvironmentFile 경로가 없다
`[Install]` 섹션이 없는 유닛의 문제는?
- systemctl start 로 시작할 수 없다
- systemctl enable 이 아무것도 하지 않아 부팅 시 자동 시작되지 않는다
- 저널에 그 유닛 로그가 남지 않는다
- 선언한 의존성이 모두 무시된다
`ExecStart=/usr/bin/app > /var/log/app.log` 가 동작하지 않는 이유는?
- 로그 파일에 쓸 권한이 없기 때문이다
- 실행 파일의 경로가 틀렸기 때문이다
- systemd 는 셸 없이 exec 하므로 리다이렉션이 해석되지 않는다
- 로그 디렉터리가 존재하지 않기 때문이다
`After=` 와 `Requires=` 의 차이는?
- 같은 뜻이다
- After 는 시작 순서만 정하고 Requires 는 의존 관계를 만든다 — 보통 둘을 함께 쓴다
- After 는 강한 의존, Requires 는 약한 의존이다
- Requires 는 종료 순서를 정한다
`Restart=always` 와 `RestartSec=0` 조합의 위험은?
- 메모리 누수가 빠르게 쌓인다
- 크래시 루프가 CPU 와 로그를 잠식해 시스템을 마비시킬 수 있다
- 조건이 겹쳐 재시작이 아예 안 된다
- 의존 서비스까지 함께 죽는다
`ProtectSystem=strict` 를 켜자 서비스가 안 뜹니다. 우선 확인할 것은?
- User 지시자로 지정한 계정이 있는지
- Type 지시자가 실제 동작과 맞는지
- 필요한 의존 서비스가 먼저 떠 있는지
- 서비스가 쓰기를 시도하는 경로가 ReadWritePaths 에 있는지