빠른 흐름
systemctl status nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl enable nginx
sudo systemctl disable nginx| 명령 | 의미 |
|---|---|
status | 현재 상태와 최근 로그 확인 |
start | 지금 시작 |
stop | 지금 중지 |
restart | 중지 후 다시 시작 |
reload | 가능한 경우 설정만 다시 읽기 |
enable | 부팅 시 자동 시작 등록 |
disable | 부팅 시 자동 시작 해제 |
서비스 관리
systemd는 많은 Linux 배포판에서 service manager 역할을 합니다. systemctl status <service>는 서비스가 실행 중인지, 마지막 종료 코드가 무엇인지, 최근 로그가 무엇인지 빠르게 보여 줍니다. 서비스 장애를 볼 때는 먼저 status를 확인하고, 그다음 journal 로그로 내려가는 흐름이 일반적입니다.
systemctl status ssh
journalctl -u ssh --since "1 hour ago"start는 현재 세션에서만 서비스를 시작하고, enable은 부팅 시 자동 시작되도록 unit을 활성화합니다. 둘은 다른 동작입니다. 서버 재부팅 후에도 서비스가 떠야 한다면 enable 여부를 확인해야 합니다.
sudo systemctl start myapp
sudo systemctl enable myapp
systemctl is-enabled myappreload와 restart는 영향 범위가 다르다
reload는 서비스가 지원하는 경우 프로세스를 완전히 내리지 않고 설정만 다시 읽게 합니다. restart는 프로세스를 다시 시작하므로 연결이 끊길 수 있습니다. 웹 서버나 프록시 설정 변경처럼 reload를 지원하는 서비스는 먼저 reload 가능 여부를 확인하는 편이 안전합니다.
체크포인트
| 상황 | 먼저 볼 명령 |
|---|---|
| 서비스 상태 확인 | systemctl status <service> |
| 부팅 자동 시작 여부 | systemctl is-enabled <service> |
| 실패한 서비스 목록 | systemctl --failed |
| 설정 변경 후 적용 | reload 가능 여부 확인 |
| unit 파일 수정 후 반영 | sudo systemctl daemon-reload |
| 상세 로그 확인 | journalctl -u <service> |
주의할 점
enable은 지금 바로 서비스를 시작하지 않고, start는 부팅 자동 시작을 보장하지 않습니다.
운영 서비스는 현재 실행 상태와 부팅 자동 시작 상태를 따로 확인하십시오.
systemctl is-active myapp
systemctl is-enabled myapp참고 링크
2 sources