systemctl — 서비스 관리
Linux / 서비스 및 프로세스 관리 / systemctl.html
💬 "systemctl 명령어"
systemctl은 서비스(유닛)를 제어합니다. 시작·중지·재시작·부팅 등록이 모두 여기 있습니다.
장애 대응에서는 status로 상태와 최근 로그를 함께 봅니다.
- 개념: systemd 유닛을 관리합니다(서비스, 타이머, 소켓 등).
- status: 활성 상태, 마지막 종료 코드, 최근 로그를 보여줍니다.
- enable/disable: 부팅 시 자동 시작 여부를 설정합니다.
- daemon-reload: 유닛 파일을 수정한 뒤 반드시 실행합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
start/stop/restart | 서비스 시작/중지/재시작 |
enable --now | 부팅 등록과 즉시 시작을 함께 |
status | 상태와 최근 로그 확인 |
reload | 중단 없이 설정을 다시 읽게 합니다(지원하는 서비스만) |
필수 명령어 조합 3가지
systemctl status myapp --no-pager— 서비스 상태와 최근 로그 확인systemctl restart myapp && systemctl is-active myapp— 재시작 후 동작 확인systemctl enable --now myapp— 부팅 등록 + 즉시 시작
💬 "실제 운영 로그를 예로 든 예시 하나 부탁해"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 상태 확인
현재 활성 상태와 마지막 오류를 봅니다.
systemctl status myapp --no-pager
2단계 · 설정 반영
유닛을 수정했다면 다시 읽게 하고 재시작합니다.
systemctl daemon-reload && systemctl restart myapp
3단계 · 검증
활성 상태와 로그를 확인합니다.
systemctl is-active myapp && journalctl -u myapp -n 20 --no-pager
실무에서는 이렇게 씁니다
1. 설정 변경 반영
상황 — myapp 유닛의 환경변수를 바꿨습니다.
systemctl daemon-reload && systemctl restart myapp
결과 — 새 설정으로 서비스가 재시작됩니다.
포인트 — daemon-reload를 빼먹으면 이전 설정이 그대로 남습니다.
2. 부팅 후 서비스가 안 뜸
상황 — 재부팅하면 서비스가 내려가 있습니다.
systemctl is-enabled myapp && systemctl enable myapp
결과 — 비활성 상태였다면 enable로 부팅 등록합니다.
포인트 — is-enabled로 자동 시작 여부를 먼저 확인합니다.
주의할 점
- restart는 잠깐 서비스가 끊깁니다. 무중단이 필요하면 reload 지원 여부를 확인합니다.
- stop 후 start를 잊으면 서비스가 내려간 채 남습니다.
- 유닛 파일을 손으로 고치면 반드시 daemon-reload를 실행합니다.
- 운영 중 서비스 중지는 사용자 승인 후 진행합니다.
실제 실행 화면
서비스 상태와 최근 로그를 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.