리눅스 서비스 관리 (systemctl start / stop / restart)
이 글은 systemctl을 이용한 리눅스 서비스 관리 방법을 정리한 글이다. 리눅스 서버를 운영하다 보면 다양한 서비스(service)를 관리해야 하는 상황이 자주 발생한다.
웹 서버, 데이터베이스, SSH 서버 등 대부분의 서버 프로그램은 서비스 형태로 실행되며 이를 관리하는 명령어가 바로 systemctl이다.
systemctl은 리눅스의 systemd 시스템 관리자에서 제공하는 명령어로 서비스 시작, 종료, 재시작, 상태 확인 등을 수행할 수 있다.
이번 글에서는 서버 관리 시 가장 많이 사용하는 systemctl 명령어의 기본 사용법을 정리해 보겠다.

리눅스 서비스 관리 1: 상태 확인 (systemctl status)
특정 서비스가 현재 실행 중인지 확인하려면 다음 명령어를 사용한다.
[코드]
systemctl status 서비스명
[샘플]
systemctl status ssh위 명령어를 실행하면 해당 서비스가 실행 중인지, 중지 상태인지, 그리고 최근 로그 정보까지 확인할 수 있다.
서버 문제를 분석할 때 가장 먼저 확인하는 명령어 중 하나다.
리눅스 서비스 관리 2: 시작 (systemctl start)
서비스가 실행되고 있지 않은 경우 다음 명령어로 시작할 수 있다.
[코드]
systemctl start 서비스명
[샘플]
systemctl start nginx이 명령어는 nginx 웹 서버를 시작한다는 명령어다.
서비스가 정상적으로 실행되었는지 확인하려면 다시 systemctl status 명령어를 사용하면 된다.
서비스가 실행되지 않을 때는 journalctl 사용법으로 로그를 함께 보면 원인을 빨리 찾을 수 있다. 전체 옵션은 systemctl 공식 매뉴얼에 정리되어 있다.
리눅스 서비스 관리 3: 중지 (systemctl stop)
서비스를 종료해야 할 경우에는 stop 명령어를 사용한다.
[코드]
systemctl stop 서비스명
[샘플]
systemctl stop nginx리눅스 서비스 관리 4: 재시작 (systemctl restart)
설정을 변경한 뒤에는 서비스를 재시작해야 변경 사항이 적용된다.
[코드]
systemctl restart 서비스명
[샘플]
systemctl restart nginx서버 운영 중 가장 자주 사용하는 명령어 중 하나이며 설정 변경 후 필수적으로 수행되는 작업이다.
부팅 시 자동 실행 설정
서비스를 서버 부팅 시 자동으로 실행하려면 다음 명령어를 사용한다.
[코드]
systemctl enable 서비스명
[샘플]
systemctl enable nginx반대로 자동 실행을 해제하려면 다음 명령어를 사용한다.
[코드]
systemctl disable 서비스명
[샘플]
systemctl disable nginx이 기능은 서버 재부팅 이후에도 서비스가 자동으로 실행되도록 설정할 때 매우 중요하다.
리눅스 서비스 관리 추가 명령어
위의 다섯 가지만 알아도 대부분의 상황은 해결된다. 하지만 실무에서 자주 쓰는 명령어 몇 가지를 더 알아 두면 훨씬 편하다. 대부분 서비스 상태를 바꾸는 명령이라 실제 서버에서는 앞에 sudo를 붙여서 실행해야 한다.
systemctl reload 서비스명: 서비스를 끄지 않고 설정 파일만 다시 읽는다. nginx처럼 지원하는 서비스라면 restart보다 접속 끊김이 없어 안전하다.systemctl enable --now 서비스명: 자동 실행 등록과 지금 바로 시작을 한 번에 처리한다.systemctl is-active 서비스명,systemctl is-enabled 서비스명: 실행 중인지, 자동 실행이 켜져 있는지를 한 단어로 알려 주어 스크립트에서 쓰기 좋다.systemctl --failed: 시작에 실패한 서비스만 모아서 보여 준다. 재부팅 후 가장 먼저 확인해 볼 만하다.systemctl daemon-reload: 서비스 유닛 파일(.service)을 수정한 뒤 systemd에 변경 사항을 알려 준다.
만약 status를 봤는데 failed 상태라면 다음 순서로 확인하면 된다. 먼저 로그에서 에러 메시지를 확인하고, 설정 파일을 고친 다음 restart로 다시 실행해 보는 것이다. 리눅스 서비스 관리 작업은 결국 status 확인 → 로그 확인 → 수정 → 재시작의 반복이다.
정리: 리눅스 서비스 관리 명령어
리눅스 서버 관리에서 systemctl 명령어는 필수적인 도구라고 할 수 있다.
특히 다음 명령어는 서버 운영 시 반드시 기억해 두는 것이 좋다.
systemctl status 서비스 상태 확인
systemctl start 서비스 시작
systemctl stop 서비스 종료
systemctl restart 서비스 재시작
systemctl enable 부팅 시 자동 실행이 명령어들을 익혀 두면 웹 서버, 데이터베이스, SSH 서비스 등 다양한 리눅스 서비스들을 효율적으로 관리할 수 있다.
리눅스 서버 운영을 시작하는 단계라면 systemctl 사용법은 반드시 익혀 두도록 하자.
직접 만든 스크립트나 Java 애플리케이션을 서비스로 등록하는 방법은 systemd 서비스 만들기에서 unit 파일 작성부터 자동 재시작까지 정리했다.
첫 댓글을 남겨보세요