본문 바로가기

리눅스

systemd 명령어

반응형

systemd 명령어

systemd는 리눅스 시스템 및 서비스 매니저로 부팅 시 서비스의 시작 및 관리를 담당하며 시스템 자원과 프로세스를 제어합니다. systemctl 명령어를 사용하여 systemd 기반 시스템에서 서비스를 관리할 수 있습니다.

1. systemd와 systemctl의 기본 개념

  • systemd : 리눅스에서 부팅 및 시스템 관리 작업을 제어하는 시스템 및 서비스 관리자.
  • systemctl : systemd 서비스 및 유닛(unit)을 관리하기 위한 명령어.

2. 주요 systemctl 명령어

서비스 관리

서비스 시작

sudo systemctl start <서비스 이름>

서비스 중지

sudo systemctl stop <서비스 이름>

서비스 재시작

sudo systemctl restart <서비스 이름>

서비스 상태 확인

sudo systemctl status <서비스 이름>

서비스 활성화(부팅 시 자동 시작 설정)

sudo systemctl enable <서비스 이름>

서비스 비활성화(부팅 시 자동 시작 비활성화)

sudo systemctl disable <서비스 이름>

서비스 다시 로드(구성 파일 변경 사항 적용)

sudo systemctl reload <서비스 이름>

유닛(Unit) 파일 관리

유닛 다시 로드 : 변경된 유닛 파일을 다시 읽어들이는 명령어

sudo systemctl daemon-reload

시스템 재부팅 및 종료

시스템 재부팅

sudo systemctl reboot

시스템 종료

sudo systemctl poweroff

시스템 정지(전원은 끄지 않음)

sudo systemctl halt

시스템 Rescue 모드 전환

sudo systemctl rescue

시스템을 구동 중인 모든 유닛 상태 확인

sudo systemctl list-units

타이머 유닛 관리

타이머는 주기적인 작업을 예약하는 데 사용됩니다.

 

타이머 유닛 상태 확인

sudo systemctl list-timers

타이머 시작

sudo systemctl start <타이머 이름>

타이머 활성화

sudo systemctl enable <타이머 이름>

3. 유용한 systemctl 명령어

시스템을 구동 중인 모든 유닛 상태 확인

sudo systemctl list-units

systemctl

UNIT 시스템(systemd) 단위 이름
LOAD
단위 정의가 제대로 로드되었는지 여부를 반영합니다.
ACTIVE 상위 단위 활성화 상태, 즉 SUB의 일반화.
SUB
저수준 유닛 활성화 상태, 값은 유닛 유형에 따라 다릅니다.
DESCRIPTION 단위가 무엇인지/하는 일에 대한 간단한 텍스트 설명입니다.
728x90

전체 서비스 목록 확인

sudo systemctl list-units --type=service

활성화된 서비스만 확인

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

systemctl

systemctl list-units --all --state=inactive

systemctl

systemctl list-units --type=service

systemctl

모든 단위 파일(unit files) 나열

systemctl list-unit-files

systemctl

4. journalctl 명령어

journalctl은 systemd에서 관리하는 로그를 확인할 수 있는 명령어입니다.

 

부팅 시부터 전체 로그 확인

journalctl

실시간 로그 스트리밍

journalctl -f

지정한 서비스 로그 확인

journalctl -u <서비스 이름>

최근 로그만 확인

journalctl -e

5. systemd 유닛(Unit) 종류

서비스 유닛 : .service 확장자로 끝나며 데몬 또는 백그라운드 서비스 관리

타이머 유닛 : .timer 확장자로 끝나며 주기적 작업 관리

타켓 유닛 : .target 확장자로 끝나며 시스템의 특정 상태를 정의

6. 사용 예시

NGINX 서비스 상태 확인

systemctl status nginx

MySQL 서비스를 시작하고 부팅 시 자동으로 시작되게 설정

sudo systemctl start mysqld
sudo systemctl enable mysqld

타이머 유닛 활성화

sudo systemctl enable example.timer

단위(unit) 관리

systemctl cat sshd.service
$ systemctl cat sshd.service
# /lib/systemd/system/ssh.service
[Unit]
Description=OpenBSD Secure Shell server
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
Alias=sshd.service

종속성 표시

systemctl list-dependencies sshd.service

단위(unit) 속성 확인

systemctl show sshd.service

단위(unit) 파일 편집

systemctl edit sshd.service
### Editing /etc/systemd/system/ssh.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file



### Lines below this comment will be discarded

### /lib/systemd/system/ssh.service
# [Unit]
# Description=OpenBSD Secure Shell server
# Documentation=man:sshd(8) man:sshd_config(5)
# After=network.target auditd.service
# ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
#
# [Service]
# EnvironmentFile=-/etc/default/ssh
# ExecStartPre=/usr/sbin/sshd -t
# ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
# ExecReload=/usr/sbin/sshd -t
# ExecReload=/bin/kill -HUP $MAINPID
# KillMode=process
# Restart=on-failure
# RestartPreventExitStatus=255
# Type=notify
# RuntimeDirectory=sshd
# RuntimeDirectoryMode=0755
#
# [Install]
# WantedBy=multi-user.target
# Alias=sshd.service
Editing "/etc/systemd/system/ssh.service.d/override.conf" canceled: temporary file is empty.

기본 target 가져오기 및 설정

systemctl get-default
$ systemctl get-default
graphical.target
systemctl set-default graphical.target

 

참고URL

- systemd 시스템 및 서비스 관리자 : https://www.freedesktop.org/wiki/Software/systemd/

- systemd 서비스 list : https://scbyun.com/457

- fedoraproject DOCS : https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/index.html

- How To Use Systemctl to Manage Systemd Services and Units : https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

 

728x90
반응형