콘텐츠로 이동

📜 컴포넌트 템플릿 제작 가이드

표준화된 스크립트 설계

UNIX/Linux 시스템에서 애플리케이션 프로세스를 안전하고 일관성 있게 제어하기 위한 스크립트 로직 설계 표준을 안내합니다.

1. 개요

본 가이드는 다양한 OS 환경(CentOS, RHEL, AIX 등)에서 애플리케이션의 시작(Start), 정지(Shutdown), 상태 확인(Status) 작업을 표준화된 방식으로 처리하기 위해 제작되었습니다.


2. 핵심 로직 구성

① 환경 설정 및 검증

  • 권한 체크: 스크립트 실행 권한 및 연관 파일(실행 파일, 로그 경로)의 존재 여부를 사전에 확인합니다.

② 사전 상태 체크

  • 상태 확인: 현재 프로세스가 이미 구동 중인지 또는 정지 상태인지 판별합니다.
  • 멱등성(Idempotency) 보장: 이미 목표 상태(예: 이미 시작됨)라면 추가적인 작업을 생략하고 안전하게 로그를 남긴 후 종료합니다.

③ 명령 실행 및 실시간 모니터링

  • 사용자 전환: 필요 시 sudo 또는 su를 활용하여 지정된 서비스 계정 권한으로 명령을 실행합니다.
  • 실시간 로그 출력: 명령 실행 직후 발생하는 로그를 큐잉하여 관리 화면에 즉시 표시합니다.

④ 프로세스 상태 대기 루프

  • 주기적 확인: 프로세스가 완전히 기동되거나 종료될 때까지 ps 명령으로 주기적으로 상태 변화를 추적합니다.
  • 타임아웃(Timeout) 설정: 무한 대기를 방지하기 위해 설정된 임계 시간 내에 상태 변화가 없으면 실패로 간주하고 제어권을 반환합니다.

⑤ 강제 종료 처리 (Shutdown 모드 전용)

  • 단계적 종료: 1차적으로 서비스의 공식 종료 명령을 시도합니다.
  • 강제 종료 시퀀스: 정상 종료 실패 시 kill -9를 통해 프로세스를 강제 종료하고 자원을 회수합니다.

⑥ 사후 상태 체크

  • 최종 결과 보고: 모든 작업 완료 후 최종 상태를 다시 점검하여 성공 또는 실패를 확정합니다.
  • 표준 종료 코드 반환: MDRM 엔진이 다음 단계 작업을 수행할 수 있도록 약속된 리턴 코드를 반환합니다.

3. 주요 기능 명세

기능명 상세 내용
멱등성 유지 동일한 명령을 여러 번 실행해도 시스템에 부작용이 없도록 설계합니다.
실시간 로그 실행 과정을 즉각적으로 확인하여 문제 발생 시 빠른 원인 파악이 가능합니다.
자동 타임아웃 워크플로우의 교착 상태를 방지하여 시스템 자원의 효율적 운영을 돕습니다.
강제 종료 로직 비정상적인 프로세스 고착 시에도 안정적으로 서비스를 종료할 수 있습니다.