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
Section 섹션
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이다.
What마운팅 대상Where마운팅 지점OptionsType파일시스템