systemctl

출처

설명

리눅스 시스템이 실행 되고 가장먼저 실행되어 다른 프로세스를 실행하는 역할을 하는 것이 systemd(system daemon)입니다. 이 프로세스로 프로그램을 서비스로 등록할 때 사용할 수 있는 명령어가 systemctl 입니다.

사용예제

서비스 파일

시스템에 서비스로 등록하기 위해서는 서비스 파일을 생성해야 합니다. 주키퍼 프로세스를 시스템 서비스로 등록하기 위해서는 다음과 같은 파일을 생성하고 /etc/systemd/system/zookeeper.service에 저장합니다.

[Unit]  
Description=Zookeeper  

[Service]  
Type=forking  
User=foo  
ExecStart=/opt/zookeeper/bin/zkServer.sh start  

[Install]  
WantedBy=multi-user.target

서비스 파일에 환경변수 추가

Environment=ZOKEEPER_CONF=/etc/zookeeper/conf
ExecStart=/opt/zookeeper/bin/zkServer.sh --conf ${ZOKEEPER_CONF} start

서비스 등록

서비스 파일을 생성후 다음 명령을 실행하면 서비스로 등록됩니다.

# 주키퍼 서비스를 등록 
systemctl daemon-reload  

# 시스템이 시작될 때 자동으로 시작되도록 등록 
systemctl enable zookeeper

서비스 실행

등록된 서비스를 실행, 정지하는 명령은 다음과 같습니다.

# 실행 
systemctl start zookeeper

# 정지
systemctl stop zookeeper

# 상태 확인 
systemctl status zookeeper

# active 상태 확인 
systemctl is-active zookeeper

서비스 삭제

서비스 삭제는 서비스 파일을 삭제하고 리로드하면 됩니다.

# 서비스 자동 실행을 제거 
systemctl disable zookeeper
# 서비스 등록 파일 삭제 
sudo rm /etc/systemd/system/zookeeper.service
# 서비스 제거 
systemctl daemon-reload  
systemctl reset-failed

서비스 목록 확인

# 등록한 서비스 목록을 확인 
systemctl list-units --type service --all

# 상태가 not-found 인 서비스 목록 확인 
systemctl --state=not-found --all

서비스 옵션

Service Type 옵션

  • simple - A long-running process that does not background its self and stays attached to the shell.
  • forking - A typical daemon that forks itself detaching it from the process that ran it, effectively backgrounding itself. 자식 프로세스까지 부모가 관리 함.
  • oneshot - A short-lived process that is expected to exit.
  • dbus - Like simple, but notification of processes startup finishing is sent over dbus.
  • notify - Like simple, but notification of processes startup finishing is sent over inotify.
  • idle - Like simple, but the binary is started after the job has been dispatched.

서비스 로그

서비스로 실행한 프로그램의 로그를 확인하기 위해서는 jourctl 명령을 이용할 수 있습니다.

# -u 옵션으로 서비스 지정 
$ journalctl -u zookeeper

# 추가 되는 로그를 확인. -f 옵션 이용 
$ journalctl -u zookeeper -f

참고

links

social