내가 만든 프로그램(파이썬 봇·작은 웹 서버 등)을 systemd 서비스로 등록 → 자동 시작·재시작·로그 수집의 혜택.
작성이 의외로 단순합니다.
기본 형식.
/etc/systemd/system/myapp.service.
[Unit] Description=My App / After=network.target.
[Service] ExecStart=/usr/bin/python3 /opt/myapp/main.py / Restart=always / User=myapp.
[Install] WantedBy=multi-user.target.
주요 키.
Description — 설명.
After — 의존성(이거 후에 시작).
ExecStart — 실행 명령.
ExecStop — 중지 명령(없으면 SIGTERM).
Restart — always·on-failure·no.
User·Group — 권한.
WorkingDirectory.
환경변수.
Environment=KEY=value 또는 EnvironmentFile=/etc/myapp.env(파일에서 로드).
비밀은 EnvironmentFile + 600 권한이 안전.
활성화.
sudo systemctl daemon-reload — systemd가 새 파일 인식.
sudo systemctl enable --now myapp — 자동 시작 등록 + 즉시 시작.
sudo systemctl status myapp으로 동작 확인.
journalctl -u myapp -f로 로그 추적.
한 줄 요약
systemd 서비스 — /etc/systemd/system/name.service에 [Unit][Service][Install] 섹션.
ExecStart·Restart·User·Environment가 주요.
daemon-reload + enable --now로 등록·시작.
더 알아볼 것
- systemctl --user 사용자 서비스
- Restart 옵션 자세히
- Type=simple/forking/oneshot 차이