우분투 실전 명령어 | systemctl 서비스 제어 핵심(start/stop/restart/reload/enable)

언제 쓰는가

서버에서 웹 애플리케이션이나 데이터베이스를 운영하다 보면, 서비스가 내려가거나 설정 반영이 필요한 순간이 자주 생깁니다. 이럴 때 systemctl만 정확히 써도 대부분의 1차 대응이 끝납니다. 특히 재부팅 후 자동 시작 여부까지 한 번에 관리할 때 가장 많이 씁니다.

바로 쓰는 명령어

# 서비스 현재 상태 확인
sudo systemctl status nginx

# 즉시 시작 / 중지 / 재시작
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# 설정 파일만 다시 읽기
sudo systemctl reload nginx

# 부팅 시 자동 시작 on/off
sudo systemctl enable nginx
sudo systemctl disable nginx

# 부팅 여부와 현재 활성 상태를 짧게 확인
systemctl is-enabled nginx
systemctl is-active nginx

핵심 옵션/패턴

# 최근 로그와 함께 상태를 빠르게 확인
systemctl status nginx --no-pager -l

# 실패한 서비스만 모아서 보기
systemctl --failed

# 서비스 유닛 파일 반영
sudo systemctl daemon-reload

reload는 "무중단 설정 반영"에 가깝고, restart는 프로세스를 다시 띄우는 동작입니다. 설정만 바꿨다면 먼저 reload 가능 여부를 확인하고, 안 되면 restart로 가는 흐름이 안전합니다.

자주 하는 실수

  • enable만 해두고 지금 당장 서비스가 떠 있을 거라고 착각하는 경우
    • enable은 "다음 부팅부터 자동 시작" 설정입니다. 지금 올리려면 start도 해야 합니다.
  • 유닛 파일 수정 후 daemon-reload를 빼먹는 경우
    • 변경 내용이 systemd에 반영되지 않아 이전 설정으로 동작합니다.
  • reload가 안 되는 서비스인데 무작정 실행하는 경우
    • 서비스마다 지원 여부가 다릅니다. 실패하면 restart로 전환하세요.

검증 방법

# 1) 현재 실행 상태 확인
systemctl is-active nginx

# 2) 부팅 자동 시작 여부 확인
systemctl is-enabled nginx

# 3) 실패 유닛 유무 점검
systemctl --failed

# 4) 문제 시 상세 상태 + 로그 확인
sudo systemctl status nginx --no-pager -l
sudo journalctl -u nginx -n 50 --no-pager

실행 결과 예시

$ systemctl is-active nginx
active

$ systemctl is-enabled nginx
enabled

$ systemctl --failed
  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.

$ sudo systemctl restart nginx
$ sudo systemctl status nginx --no-pager -l
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-02-18 20:09:41 KST; 3s ago
       Docs: man:nginx(8)
    Process: 18421 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 18422 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 18423 (nginx)
      Tasks: 3 (limit: 18901)
     Memory: 5.8M
        CPU: 36ms

출처

  • Ubuntu Community Help Wiki
  • systemd 공식 문서
  • NGINX 공식 문서