Devin.KR

systemd 서비스와 기동 로그

웹 앱을 systemd로 관리하고 설정 오류를 로그로 진단합니다.

진도 0%

레슨

  1. 유닛과 프로세스의 관계

    이전 웹 앱에 User·WorkingDirectory·ExecStart를 지정한 실습 전용 유닛을 작성합니다.

  2. 기동 오류 추적

    제공된 잘못된 경로·권한·환경 설정 사례를 journalctl로 구분해 수정합니다.

  3. 기동 로그 집계

    표준 입력 로그에서 서비스별 오류 횟수를 집계하고 정렬된 결과를 출력합니다.

  4. 설정 변경 전 보관

    유닛과 환경 설정을 날짜별로 보관하고 diff와 체크섬으로 변경 전후를 비교합니다.

systemd 서비스와 기동 로그 미션

이전 모듈 m03-packages-processes의 산출물을 가져와 웹 앱을 systemd로 관리하고 설정 오류를 로그로 진단합니다.

요구사항

  • 이전 앱을 bootcamp-systems.service로 관리하고 일반 사용자 셸과 서비스 환경 차이를 문서화합니다.
  • 변경 전 설정 사본과 권한 오류의 로그·수정 이유를 evidence/service.md에 기록합니다.
  • m03 미션 solution 전체를 previous/에 보존하고 앱·권한·데이터·app.conf를 이어 씁니다.
  • 전용 service.py로 환경 사전 검증과 20초 자연 종료를 추가하며 Restart=no로 실습합니다. 임의의 프로세스를 종료하지 않습니다.
  • evidence/backups/시각-PID에 유닛·환경 원본과 SHA-256·소유권·모드를 보관하고 두 설정을 복원합니다.

완료 기준

  • systemctl의 active 상태와 HTTP 정상 응답을 각각 검사합니다.
  • 잘못된 경로·읽기 권한·환경 값 사례를 검증기가 주입했을 때 진단 기록이 원인과 연결되는지 검사합니다.
  • 설정 사본의 해시가 변경 전 값과 같고 되돌림 뒤 /items가 정상인지 검사합니다.
  • bash check.sh는 유닛 계약·환경 경계값·기존 HTTP/동시 갱신 회귀와 실제 bcweb PID·기동 중 active·HTTP 본문을 검사합니다.
  • 없는 DATA_FILE·잘못된 RUN_SECONDS·별도 root 전용 fixture·없는 WorkingDirectory를 한 번에 하나씩 주입하고 해당 journal 원인 문자열을 검사합니다. 원본 데이터 권한은 변경하지 않습니다.
  • 복원 해시와 기존 app.conf·items.json 불변 및 복원 기동 /items 응답을 검사합니다. 실제 systemd VM 검증은 external이며 이 맥에서는 PENDING입니다.
bash check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 관측 결과와 판단 근거가 연결되어 있습니다.
  • 실습 VM 범위와 필요한 권한을 명시하고 재현 순서를 기록합니다.