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 / 명령어 / lsblk - 디스크·파티션 구조와 마운트 지점 확인

Linux / 명령어 / lsblk - 디스크·파티션 구조와 마운트 지점 확인

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

Linux / 명령어 / shred - 파일 데이터 덮어쓰기

Linux / 명령어 / shred - 파일 데이터 덮어쓰기

Linux shred 명령어로 파일이나 장치의 데이터를 덮어쓰는 방법과 한계를 설명합니다. SSD, 저널링·복사 방식 파일 시스템, 스냅샷 환경에서 완전 삭제를 보장할 수 없는 이유도 알아봅니다.

Linux / 명령어 / awk - 필드별 텍스트 분석과 계산

Linux / 명령어 / awk - 필드별 텍스트 분석과 계산

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

Linux / 명령어 / timedatectl - 시간대와 시간 동기화 상태 관리

Linux / 명령어 / timedatectl - 시간대와 시간 동기화 상태 관리

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

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

Linux / 명령어 / tracepath - 네트워크 경로와 경로 MTU 확인

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

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux du 명령어로 디렉터리와 파일의 디스크 사용량을 확인하고 큰 항목을 찾는 방법을 설명합니다. apparent size, 파일시스템 경계와 df 결과가 다른 이유도 정리합니다.

Linux 강좌 / 셸의 명령 실행 방식 - ;, &&, ||, 별칭과 환경 변수

Linux 강좌 / 셸의 명령 실행 방식 - ;, &&, ||, 별칭과 환경 변수

Bash가 명령을 해석하고 종료 상태에 따라 다음 명령을 실행하는 방식을 알아봅니다. ;, &&, ||와 별칭·환경 변수의 차이를 안전한 예제로 설명합니다.

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

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

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

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