Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

systemctl은 systemd가 관리하는 서비스와 기타 유닛의 상태를 조회하고 시작·중지·재시작·부팅 시 자동 시작을 제어합니다. 서비스 장애를 조사할 때 먼저 status로 현재 상태를 확인하세요.

systemctl 명령어란?

start는 지금 실행하는 동작이고 enable은 부팅 시 시작하도록 설정하는 동작입니다. 서로 자동으로 대체되지 않습니다. active와 enabled도 각각 현재 실행 상태와 부팅 설정을 뜻합니다. 유닛 이름을 명확히 지정하고 로그는 journalctl -u로 확인합니다.

기본 문법

systemctl [옵션] 명령 [유닛]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man systemctl으로 현재 시스템의 설명을 확인하세요.

사용 예제

서비스 상태 확인

예시 유닛 이름은 실제 시스템의 서비스 이름으로 바꿉니다.

systemctl status sshd.service

현재 실행 여부 확인

스크립트에서 상태를 점검할 때 종료 상태도 함께 확인합니다.

systemctl is-active sshd.service

부팅 시 자동 시작 설정 확인

현재 실행과 무관하게 enable 상태를 봅니다.

systemctl is-enabled sshd.service

서비스 상태와 실행 여부 구별하기

systemctl is-active 서비스명은 지금 실행 상태를 짧게 알려 줍니다. 다음의 서비스 이름은 환경에 맞게 바꿔야 합니다.

systemctl is-active sshd.service

서비스가 실행 중인 시스템의 예시 출력:

active

active는 현재 실행 중이라는 뜻입니다. 부팅 시 자동 시작 여부는 별개이므로 systemctl is-enabled sshd.service로 확인하세요. 서비스 이름은 배포판마다 다를 수 있으며, restart는 연결 중단을 일으킬 수 있으므로 설정 변경 뒤에는 먼저 status와 journalctl -u로 원인을 확인합니다.

start는 지금 서비스를 시작하고 enable은 부팅 시 자동 시작 설정을 바꿉니다. 둘은 서로를 자동으로 보장하지 않습니다. 유닛 파일 자체를 수정했다면 sudo systemctl daemon-reload로 정의를 다시 읽힌 뒤 필요한 서비스를 재시작하고 상태와 로그를 확인하세요.

주요 옵션과 형식

옵션·형식 설명
status 유닛 상태와 최근 로그 요약을 표시합니다.
start / stop 유닛 유닛을 현재 시작하거나 중지합니다.
restart 유닛 중지 후 다시 시작하므로 연결이 끊길 수 있습니다.
reload 유닛 서비스가 지원하면 재시작 없이 설정을 다시 읽습니다.
enable / disable 유닛 부팅 시 자동 시작 설정을 변경합니다.

사용할 때 주의할 점

원격 접속 서비스나 운영 중인 웹 서비스를 stop·restart하면 접속과 요청이 중단될 수 있습니다. 유닛 이름, 변경 창구, 복구 절차를 먼저 확인하세요. daemon-reload는 변경된 유닛 정의를 다시 읽는 작업이지 서비스를 재시작하는 명령이 아닙니다. systemd가 아닌 시스템에는 적용되지 않습니다.

자주 묻는 질문

systemctl enable을 하면 서비스가 바로 실행되나요?

보통은 아닙니다. enable은 부팅 시 자동 시작 설정입니다. 지금도 실행하려면 start를 별도로 실행하거나 지원되는 --now 옵션을 사용합니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 systemctl 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux head 명령어로 파일의 처음 몇 줄이나 바이트를 출력하는 방법을 설명합니다. 여러 파일, 음수 개수, 파이프 활용과 바이너리 데이터 주의점도 정리합니다.

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

리눅스 배포판 종류와 버전을 /etc/os-release, hostnamectl, uname 명령으로 확인하는 방법을 설명합니다. 배포판 계열과 커널 버전의 차이, 스크립트 활용법과 컨테이너·WSL 환경의 주의점도 함께 정리합니다.

Linux / 명령어 / cut - 행에서 문자와 필드 추출

Linux / 명령어 / cut - 행에서 문자와 필드 추출

Linux cut 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux 강좌 / 파일 내용 읽기 - cat, less, more, head, tail

Linux 강좌 / 파일 내용 읽기 - cat, less, more, head, tail

cat, less, more, head, tail로 리눅스 파일 내용을 읽는 방법을 비교합니다. 짧은 파일과 긴 파일, 앞·뒤 일부를 확인할 때의 선택 기준과 실습 결과를 설명합니다.

Linux / 명령어 / split - 큰 파일을 크기·행 수별로 분할

Linux / 명령어 / split - 큰 파일을 크기·행 수별로 분할

Linux split 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

Linux ethtool 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / unzip - ZIP 파일 목록 확인과 안전한 압축 해제

Linux / 명령어 / unzip - ZIP 파일 목록 확인과 안전한 압축 해제

Linux unzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux / 명령어 / dd - 블록 단위 데이터 복사와 변환

Linux dd 명령어로 파일과 블록 장치 데이터를 복사하고 변환하는 방법을 설명합니다. if와 of, 블록 크기, 진행률, 디스크 이미지 생성·복원 및 대상 장치 오지정 위험을 정리합니다.

Linux / 명령어 / truncate - 파일 크기 줄이기와 늘리기

Linux / 명령어 / truncate - 파일 크기 줄이기와 늘리기

Linux truncate 명령어로 파일 크기를 지정하거나 늘리고 줄이는 방법을 설명합니다. 희소 파일, 상대 크기 조정, 기준 파일과 같은 크기로 맞추는 방법 및 데이터 손실 주의점을 알아봅니다.

Linux / 명령어 / clear - 터미널 화면 정리

Linux / 명령어 / clear - 터미널 화면 정리

Linux clear 명령어로 터미널 화면을 정리하는 방법을 설명합니다. 스크롤백을 보존하는 -x 옵션과 Ctrl+L·reset·tput의 차이, TERM 오류 해결법을 다룹니다.