유닛 파일이란
systemd가 관리하는 프로세스(서비스)의 실행 방법·의존성·재시작 정책 등을 정의한 설정 파일입니다. .service 확장자를 가지며 /etc/systemd/system/에 둡니다.
기본 구조
# /etc/systemd/system/myapp.service
[Unit]
Description=My Application
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/myapp/server.js
Restart=on-failure
User=myapp
[Install]
WantedBy=multi-user.target
섹션별 역할
- [Unit]: 설명, 다른 유닛과의 순서/의존 관계 (
After,Requires) - [Service]: 실행 명령, 재시작 정책, 실행 계정 — 서비스 타입 유닛에 필수
- [Install]: 부팅 시 자동 시작 대상 지정
등록 및 실행
systemctl daemon-reload # 변경된 유닛 파일 반영
systemctl enable myapp # 부팅 시 자동 시작 등록
systemctl start myapp # 즉시 실행
systemctl status myapp # 상태 확인
재시작 정책 팁
Restart=on-failure로 설정하면 프로세스가 비정상 종료됐을 때만 자동 재시작되고, 정상 종료(systemctl stop)에는 재시작하지 않습니다.