서버에서 서비스를 켰는데 재부팅 뒤 다시 접속하니 멈춰 있다. systemctl start를 실행했으니 앞으로도 계속 켜질 거라고 생각하기 쉽다. 하지만 지금 실행 중인지와 다음 부팅 때 자동으로 시작할지는 서로 다른 상태다. 이 둘을 분리해서 확인하면 불필요한 재설치나 설정 변경을 피할 수 있다.
systemctl start는 현재 실행 상태를 바꾼다
도식의 NOW 경로는 현재 서비스 프로세스에, NEXT BOOT 경로는 다음 부팅의 연결 설정에 닿는다. 그래서 enable만 성공했다고 지금 서비스가 실행 중이라고 판단할 수 없다.
start는 해당 서비스를 지금 시작하도록 systemd에 요청한다. 다음 예제의 demo-web.service는 설명용 서비스 이름이다. 실제 환경에서는 관리하려는 서비스의 정확한 유닛 이름을 먼저 확인해야 한다.
sudo systemctl status demo-web.service
sudo systemctl start demo-web.service
sudo systemctl status demo-web.service첫 status와 마지막 status를 비교해 현재 상태가 바뀌었는지 본다. active (running)이라면 프로세스가 지금 동작 중이라는 뜻이다. 반대로 시작 명령이 실패했다면 상태 화면의 오류 메시지부터 확인해야 한다. 자동 시작 설정을 바꾸는 것으로 실행 실패 자체가 해결되지는 않는다.
start는 이미 실행 중인 서비스를 새 설정으로 다시 읽게 만드는 명령도 아니다. 서비스가 멈춰 있었다면 시작하고, 실행 중인 서비스에 변경된 설정을 적용하려면 그 서비스의 재시작이나 재적용 방식이 필요한지 별도로 판단한다.
systemctl enable은 다음 부팅을 위한 설정이다
enable은 부팅 과정에서 서비스를 자동 시작할 수 있도록 유닛의 활성화 설정을 만든다. 지금 멈춰 있는 서비스를 곧바로 실행시키는 명령으로 읽으면 안 된다.
sudo systemctl enable demo-web.service
sudo systemctl status demo-web.service두 번째 명령에서 여전히 비활성 상태가 보일 수 있다. 그때는 enable이 실패했다고 바로 결론 내리지 말고, 현재 실행 상태와 부팅 자동 시작 설정을 구분한다. 지금도 서비스가 필요하다면 start를 추가로 실행한다. 반대로 부팅 시 자동 시작만 예약하고 현재는 테스트를 멈춰 두고 싶다면 굳이 start를 하지 않아도 된다.
자동 시작이 필요 없어졌다면 disable로 그 설정을 해제한다. 이 역시 현재 실행 중인 프로세스를 즉시 정지시키는 명령과는 다르다. 당장 중지하려면 stop을 별도로 검토해야 한다.
재부팅 뒤 멈췄을 때는 무엇부터 확인할까?
먼저 status에서 현재 실행 상태와 표시된 자동 시작 설정을 나누어 읽는다. 서비스가 현재 실행 중이고 자동 시작만 빠져 있다면 enable 여부가 핵심이다. 자동 시작 설정은 있는데 서비스가 멈춰 있다면, 시작에 실패했을 가능성을 살펴야 한다.
sudo systemctl status demo-web.service
sudo journalctl -u demo-web.service서비스별 로그에서 오류가 발생한 시점과 내용을 확인한다. 실행 파일이 없거나 서비스가 참조하는 파일·작업 디렉터리·환경이 준비되지 않은 경우라면, enable을 반복해도 부팅 실패가 해결되지 않는다. 로그 확인은 원인을 좁히기 위한 단계이지, 이 두 명령만으로 모든 서비스 문제를 진단할 수 있다는 뜻은 아니다.
운영 서버에서는 무턱대고 restart하기 전에 이 서비스가 요청을 처리 중인지와 중단 가능 시간을 확인한다. 재부팅 테스트도 서비스 영향과 복구 경로를 확보한 뒤에 진행한다. status와 로그로 상태를 기록한 다음 한 가지 변경을 적용하고 다시 확인하면, 어떤 조치가 효과를 냈는지 알기 쉽다.
핵심 요약: 현재 실행과 부팅 자동 시작은 별개다
systemctl start는 지금 실행, systemctl enable은 다음 부팅 때 자동 시작을 위한 설정이다. 재부팅 뒤 서비스가 멈춘다면 현재 상태, 자동 시작 설정, 서비스 로그를 순서대로 확인한다. 실패 로그가 보이는데 enable만 반복하거나, 자동 시작 설정이 없는데 start만 반복하면 같은 문제를 다시 만날 수 있다.
작성자
기초 개념을 구현과 검증, 실제 운영 판단까지 연결해 기록합니다.

