여기서는 멈추세요
- 명령 출력의 서버·서비스·경로가 예상 대상과 다르면 변경 단계로 넘어가지 않습니다.
- 현재 접속 세션, 백업 또는 콘솔 복구 경로를 확보하지 못했다면 상태 변경 명령을 실행하지 않습니다.
SYSTEMD
SAFE OPERATING BOUNDARY
변경 전 설정과 출력값을 기록하고, 예상과 다른 결과가 나오면 추가 변경을 멈춘 뒤 승인된 운영 복구 절차로 되돌립니다.
BEFORE YOU START
CHECK THE BRANCH
짧은 시간에 반복 실패해 start limit에 도달한 상태입니다. 먼저 최초 실패 원인을 해결한 뒤 reset-failed 여부를 판단합니다.
systemd의 User, Group, WorkingDirectory, Environment, PATH가 로그인 셸과 다른지 systemctl show와 cat으로 비교합니다.
After는 순서만 지정하며 기동 필요성을 보장하지 않습니다. Requires·Wants와 실패한 의존 unit을 함께 확인합니다.
FOLLOW THE FLOW
SERVICE_NAME을 실제 unit 이름으로 바꿉니다.
systemctl --failed --no-pagersystemctl status SERVICE_NAME --no-pager -lResult, Exit Code, 마지막 로그 줄을 기록합니다.
설정 오류인지 실행 파일 오류인지 가설을 세웁니다.
이전 장애 기록과 섞이지 않도록 -b를 사용합니다.
journalctl -u SERVICE_NAME -b -n 150 --no-pagerjournalctl -u SERVICE_NAME -b -p warning --no-pager첫 번째 오류를 우선 확인하고 뒤따르는 연쇄 오류와 구분합니다.
오류가 가리키는 파일·포트·권한을 점검합니다.
drop-in 설정까지 합쳐진 내용을 확인합니다.
systemctl cat SERVICE_NAMEsystemctl show SERVICE_NAME -p FragmentPath -p User -p ExecStart -p Restart편집한 파일과 실제 FragmentPath가 같은지 확인합니다.
변경 전 원본과 수정 내용을 기록합니다.
경로를 실제 unit 파일로 바꿉니다.
systemd-analyze verify /etc/systemd/system/SERVICE_NAME.serviceUnknown key, 실행 파일 부재, 의존성 순환 등을 수정합니다.
검증 오류가 없어야 재로딩합니다.
서비스 영향과 unit 이름을 다시 확인합니다.
sudo systemctl daemon-reloadsudo systemctl restart SERVICE_NAMEsystemctl is-active SERVICE_NAME && systemctl status SERVICE_NAME --no-pageractive 상태와 실제 애플리케이션 헬스체크를 모두 확인합니다.
실패하면 추가 재시작보다 2단계 로그로 돌아갑니다.
PRIMARY REFERENCES
배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.