반응형
systemd
서비스 파일에서 사용 가능한 옵션은 다양하며, 주로 서비스의 동작을 정의하고 제어하는 데 사용됩니다. 여기서는 서비스 파일의 주요 섹션과 옵션을 모두 소개합니다.
서비스 파일의 구조
systemd
서비스 파일은 크게 [Unit]
, [Service]
, [Install]
섹션으로 나뉩니다.
1. [Unit]
섹션
이 섹션은 서비스의 일반적인 설명과 동작에 대한 메타데이터를 정의합니다.
- Description: 서비스에 대한 설명을 추가합니다.
Description=My custom service
- Documentation: 서비스의 문서 URL을 지정합니다.
Documentation=https://example.com/documentation
- Requires: 서비스가 시작되기 전에 필수로 필요한 다른 유닛을 지정합니다.
Requires=network.target
- Wants: 선택적으로 필요한 다른 유닛을 지정합니다.
Requires
와 다르게 이 유닛이 실패해도 계속 실행됩니다.
Wants=network-online.target
- After: 이 서비스가 시작되기 전에 실행되어야 하는 유닛을 지정합니다.
After=network.target
- Before: 이 서비스가 시작되기 전에 정지되어야 하는 유닛을 지정합니다.
Before=multi-user.target
- Conflicts: 지정된 유닛과 충돌하는 경우 이 유닛이 실행되면 다른 유닛은 중지됩니다.
Conflicts=other.service
2. [Service]
섹션
이 섹션은 서비스의 실행 방법 및 속성을 정의합니다.
- Type: 서비스의 유형을 지정합니다. 기본값은
simple
입니다.simple
: 서비스가 바로 실행되고, 종료 신호를 기다리지 않습니다.forking
: 프로세스가 포크(fork)된 후 백그라운드로 전환됩니다.oneshot
: 단일 작업이 완료되면 종료됩니다.notify
: 서비스가 시작됨을 시스템에 알립니다.idle
: 다른 모든 작업이 완료된 후 실행됩니다.
Type=simple
- ExecStart: 서비스가 시작될 때 실행할 명령어를 지정합니다.
ExecStart=/usr/bin/my-service
- ExecStop: 서비스가 중지될 때 실행할 명령어를 지정합니다.
ExecStop=/usr/bin/my-service-stop
- ExecReload: 서비스가 다시 로드될 때 실행할 명령어를 지정합니다.
ExecReload=/usr/bin/my-service-reload
- Restart: 서비스가 실패했을 때 재시작할 조건을 지정합니다.
no
,on-success
,on-failure
,on-abnormal
,on-abort
,always
등
Restart=on-failure
- RestartSec: 서비스가 재시작될 때 대기할 시간을 초 단위로 지정합니다.
RestartSec=5s
- User: 서비스를 실행할 사용자 계정을 지정합니다.
User=nobody
- Group: 서비스를 실행할 그룹을 지정합니다.
Group=nogroup
- WorkingDirectory: 서비스의 작업 디렉토리를 설정합니다.
WorkingDirectory=/var/my-service
- Environment: 환경 변수를 설정합니다.
Environment="VAR1=value1" "VAR2=value2"
- StandardOutput 및 StandardError: 표준 출력 및 표준 오류를 파일, null, syslog 등으로 리디렉션합니다.
StandardOutput=syslog
StandardError=syslog
3. [Install]
섹션
이 섹션은 서비스가 설치될 때 어떻게 처리될지 정의합니다.
- WantedBy: 이 서비스가 설치될 때 활성화되는 대상(target)을 지정합니다.
WantedBy=multi-user.target
- RequiredBy: 이 유닛이 필수로 요구되는 대상(target)을 지정합니다.
RequiredBy=graphical.target
- Alias: 유닛의 별칭을 설정합니다.
Alias=my-alias.service
이 외에도 여러 옵션이 있지만, 위의 옵션들이 가장 자주 사용되고 중요한 설정입니다. 서비스의 동작과 상태를 제어하기 위해 필요한 경우 위의 옵션들을 조합하여 사용하면 됩니다.
반응형
'Linux Unix' 카테고리의 다른 글
[ Linux ] crontab - 특정 시간에 스크립트를 자동으로 실행하기 (0) | 2024.11.05 |
---|---|
[ Linux ] ufw, nmap, iptables - 특정 포트가 방화벽에 막혀 있는 지 확인하기 (0) | 2024.11.05 |
[ Linux ] service 등록 (1) - 서비스로 등록해서 서버 (Daemon) 사용하기 (0) | 2024.10.21 |
[ Linux ] service 등록 - bash script를 서비스로 등록하기 (0) | 2024.10.21 |
[ 리눅스 / Linux ] 네임스페이스, Cgroup을 알아보기 (0) | 2024.07.02 |