systemd:systemd_syntax

systemd syntax

tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
 
[Service]
Type=simple
EnvironmentFile=/etc/tomcat/tomcat.conf
Environment="NAME="
EnvironmentFile=-/etc/sysconfig/tomcat
ExecStart=/usr/libexec/tomcat/server start
SuccessExitStatus=143
User=tomcat
 
[Install]
WantedBy=multi-user.target

Unit

[Unit]서비스의 설명이 들어잇는 기초 섹션

  • [Description] 서비스 설명
  • [Requires] 의존관계로 해당 서비스가 반드시 실행되어야 이후 진행
  • [Wants] requires보다 약한 의존관계로, 해당 서비스가 실행되지 않더라도 이후 진행
  • [Before] 이전에 시작할 서비스
  • [After] 서비스 기동 이후에 시작할 서비스

Service

애플리케이션 서비스 관련

  • Type:
    • simple : deafult값. 유닛이 시작된 경우 즉시 systemd는 유닛의 시작이 완료 되었다고 판단함. 다른 유닛과 통신하기 위해 소켓을 사용하는 경우 이 설정을 하면안됌
    • forking : 자식 프로세스가 생성완료 되는 단계까지를 systemd가 시작완료 되었다고 판단하며 부모 프로세스를 추적할 수 있도록 PIDFile 필드에 PID파일을 선언해주어야함
    • oneshot : 메인 프로세스가 시작되면 상태를 activating 으로 바꾸고 끝날때까지 기다리며 해당 메인 프로세스가 끝나야지만 다음 systemd unit으로 넘어간다. 또한 해당 실행이 종료되더라도 RemainAfterExit=yes 옵션을 통해 유닛이 활성화 상태로 간주할 수 있다.
    • dbus : simple과 유사, DBUS에 지정된 BusName이 준비될 때까지 대기하며 DBUS 준비가 완료된 이후에 프로세스 시작
    • notify : simple과 유사, systemd에 시그널을 보내고 시그널에 대한 내용은 libsystemd-daemon.so에 선언 되어있음
    • idle : simple과 유사, 모든 서비스가 실행된 후에 실행됨
  • EnvironmentFile: 서비스의 환경설정을 파일을 지정
  • ExecStartPre: 서비스 시작하기 전에 실행할 명령을 설정
  • ExecStart: 서비스를 시작하기 위한 full path 및 실행 인자를 설정
  • ExecStartPost: 서비스를 시작한 이후에 실행할 명령을 설정
  • ExecStop: 서비스를 종료할 때 실행할 명령을 설정
  • ExecStopPost: 서비스 종료 명령 이후에 실행할 명령을 설정
  • ExecReload: 서비스가 reload 될때 필요한 명령어나 스크립트를 지정
  • KillMode: 프로세스가 어떻게 중지 되는지 결정함
  • Restart: on-failure는 어떤 문제로 인해 0이아닌 Exit코드를 보여주고 중지될 경우 서비스를 다시시작, 반대로 on-success는 프로세스가 아무런 문제없이 Exit코드가 0인 경우 다시 그 서비스를 시작하라는 의미
  • RestartSec: 서비스를 다시 시작하기전에 이 시간동안 서비스를 Sleep상태로 두라는 의미
  • RemainAfterExit: (yes|no) 유닛이 종료 이후에도 유닛이 활성화 상태로 판단함
  • TimeoutSec: 서비스 종료시 대기하는 시간

Install

부팅 시에 Unit이 활성화나 비활성화를 위해 사용하는 명령어. 값이 default.target이면 링크 파일을 생성하지 않고 multi-user.target면 링크 파일을 생성함

Socket

Mount

마운트 관련. 작성시 파일명은 마운팅 지점 경로 기준으로 하이픈으로 작성되며, 확장자가 .mount이다.

mnt-sub.mount

  • What 마운팅 대상
  • Where 마운팅 지점
  • Options
  • Type 파일시스템

Automount

Swap

Path

Timer

Slice

  • systemd/systemd_syntax.txt
  • 마지막으로 수정됨: 2025/01/10 07:28
  • 저자 writer