⚙️ Systemd 서비스 생성기
Linux systemd 유닛 파일(.service) 생성
파일명으로 사용됩니다 (예: myapp.service)
[Unit]
[Service]
[Install]
설치 방법
- 파일을 /etc/systemd/system/에 복사
- sudo systemctl daemon-reload
- sudo systemctl enable 서비스명
- sudo systemctl start 서비스명
Systemd 서비스 관리 가이드
Systemd란?
Systemd는 대부분의 현대 Linux 배포판에서 사용되는 시스템 및 서비스 관리자입니다. 부팅 프로세스를 관리하고, 시스템 서비스를 시작/중지/재시작하며, 로그 수집 및 리소스 관리 등 다양한 기능을 제공합니다.
기본 명령어
systemctl start myapp서비스 시작systemctl stop myapp서비스 중지systemctl restart myapp서비스 재시작systemctl status myapp상태 확인systemctl enable myapp부팅 시 자동 시작systemctl disable myapp자동 시작 해제journalctl -u myapp로그 확인journalctl -u myapp -f실시간 로그서비스 타입 설명
| Type | 설명 | 사용 예 |
|---|---|---|
| simple | 기본값. ExecStart 프로세스가 메인 프로세스 | Node.js, Python 앱 |
| forking | 데몬처럼 fork하는 프로세스 | Apache, Nginx (legacy) |
| oneshot | 한 번 실행 후 종료 | 백업 스크립트, 마이그레이션 |
| notify | sd_notify()로 준비 완료 알림 | PostgreSQL, systemd-aware 앱 |
베스트 프랙티스
- 전용 사용자 생성: 서비스는 root가 아닌 전용 사용자로 실행
- 환경변수 분리: 비밀값은 EnvironmentFile로 분리 관리
- 재시작 정책: on-failure 또는 always로 안정성 확보
- 타임아웃 설정: 긴 시작 시간이 필요하면 TimeoutStartSec 조정
- 로그 관리: journald 또는 rsyslog로 로그 저장 설정
관련 도구
관련 도구
Linux & System 전체 보기함께 쓰면 좋은 도구를 확인하세요.