> 패키지 및 시스템 관리 > systemctl

systemctl 명령어 가이드: systemd 서비스 관리의 중심

`systemctl` 명령어는 systemd 시스템 및 서비스 관리자의 핵심 도구입니다. systemd는 최신 Linux 배포판에서 시스템의 시작 프로세스, 서비스, 마운트 포인트, 소켓 등을 관리하는 표준으로 사용됩니다. `systemctl`을 통해 서비스의 상태를 확인하고, 시작/중지/재시작하며, 시스템 부팅 시 자동 실행 여부를 설정하는 등 시스템 전반을 효율적으로 제어할 수 있습니다. 이 가이드를 통해 `systemctl`의 다양한 활용법을 익혀보세요.

systemctl 개요

systemd는 시스템의 시작(부팅) 과정을 관리하고, 시스템 부팅 후 백그라운드에서 실행되는 모든 서비스(데몬)를 제어하는 init 시스템입니다. `systemctl`은 이러한 systemd의 기능을 명령줄에서 조작할 수 있도록 해주는 인터페이스입니다. 과거의 `service`, `chkconfig`, `reboot`, `shutdown` 등의 여러 명령어가 `systemctl` 하나로 통합되었습니다.

systemd 유닛(Unit) 이해

systemd는 관리하는 모든 것을 '유닛(Unit)'이라는 개념으로 추상화합니다. 각 유닛은 특정 서비스, 마운트 지점, 장치 등을 나타냅니다. 가장 흔히 다루는 유닛 유형은 `서비스 유닛(.service)`, `소켓 유닛(.socket)`, `마운트 유닛(.mount)`, `장치 유닛(.device)`, `타겟 유닛(.target)` 등입니다. 보통 `.service` 확장자는 생략하고 사용합니다.

systemctl의 주요 역할

  • 서비스 상태 확인: 실행 중인 서비스, 활성화된 서비스, 실패한 서비스 등을 파악합니다.
  • 서비스 제어: 서비스를 시작, 중지, 재시작, 리로드(설정 다시 읽기)합니다.
  • 서비스 자동 실행 설정: 시스템 부팅 시 서비스가 자동으로 시작되도록 설정하거나 해제합니다.
  • 시스템 전원 관리: 시스템을 재시작, 종료, 절전 모드로 전환합니다.
  • 유닛 파일 관리: 유닛 파일의 위치, 종속성 등을 확인하고 수정합니다.

주요 systemctl 명령어 옵션

`systemctl` 명령어는 서비스 관리, 시스템 전원 제어, 유닛 파일 관리 등 다양한 기능을 위한 풍부한 옵션을 제공합니다. 대부분의 서비스 관련 명령어는 `sudo` 권한이 필요합니다.

1. 서비스 상태 및 제어

2. 서비스 자동 실행 설정

3. 시스템 전원 관리

4. 유닛 파일 및 목록

생성된 명령어:

명령어를 조합해 보세요.

설명:

`systemctl` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

`systemctl` 명령어의 다양한 활용 예시들을 통해 systemd 기반 시스템에서 서비스를 효과적으로 관리하는 방법을 익혀보세요.

웹 서버 (Nginx) 서비스 상태 확인

systemctl status nginx.service

Nginx 웹 서버가 현재 실행 중인지, 비활성 상태인지, 오류가 발생했는지 등 상세 정보를 확인합니다.

MySQL 서비스 시작

sudo systemctl start mysql.service

MySQL 데이터베이스 서비스를 시작합니다.

SSH 서비스 재시작

sudo systemctl restart sshd.service

SSH(Secure Shell) 서비스를 재시작합니다. 설정 파일 변경 후 적용할 때 유용합니다.

Apache 웹 서버 자동 시작 설정

sudo systemctl enable apache2.service

시스템 부팅 시 Apache 웹 서버가 자동으로 시작되도록 설정합니다.

모든 활성 서비스 목록 확인

systemctl list-units --type=service --state=active

현재 시스템에서 'active' 상태(실행 중이거나 준비 완료)인 모든 서비스 유닛을 나열합니다.

systemd를 통한 시스템 재시작

sudo systemctl reboot

가장 권장되는 방식으로 시스템을 안전하게 재시작합니다.

특정 서비스 유닛 파일 내용 보기

systemctl cat redis-server.service

Redis 서비스의 systemd 유닛 파일(예: `/etc/systemd/system/redis.service`) 내용을 확인하여 서비스의 동작 방식을 이해합니다.


동일 카테고리 명령어