Project

General

Profile

Podman-compose 시스템 자동시작 » History » Revision 2

Revision 1 (상혁 손, 2025-10-12 16:33) → Revision 2/3 (상혁 손, 2025-10-12 16:34)

# Podman-compose 서비스 등록 

 ssd@SSD-SERVER:/work/podman/postgresql-server$ cat ~/.config/systemd/user/my-server.service 
 `[Unit]` 
 `Description=Podman Compose service for PostgreSQL Project` 
 `#Requires=network-online.target` 
 `#After=network-online.target` 
 `# Podman 소켓이 준비될 때까지 기다립니다.` 
 `Wants=podman.socket` 
 `After=podman.socket` 

 `[Service]` 
 `Type=oneshot` 
 `RemainAfterExit=true` 

 `# 프로젝트 폴더를 작업 디렉토리로 지정합니다.` 
 `WorkingDirectory=/work/podman/postgresql-server`  

 `# 서비스 시작 명령어 (백그라운드 실행)` 

 `#필요하다면 # 필요하다면 리소스가 준비될때까지 sleep하도록 대기` 대기 

 `ExecStartPre=/bin/sleep 30` ExecStartPre=/bin/sleep 30 

 #/usr/bin/podman-compose가 있는지 /usr/local/bin/podman-compose가 있는지 정확히 지정 필요 
 `ExecStart=/usr/bin/podman-compose up -d` 

 `# 서비스 중지 명령어` 
 `ExecStop=/usr/bin/podman-compose down` 

 `# 실패 시 10초 후 재시작`  

 #gpu의 경우 언제 리소스가 활성화 될지 모르기 때문에 failure에 대비해서 30초로 설정 
 `#Restart=on-failure` 
 `#RestartSec=10` 

 `[Install]` 
 `WantedBy=default.target` 

 위와 같은 형태로 서비스를 등록하면 됨 

 시스템 재시작시에 자동으로 시작하게 하는방법은 linger를 통해서 

 `sudo loginctl enable-linger $(whoami)` 
 `loginctl show-user $(whoami) | grep Linger` 

 Linger=yes 가 나오면 자동 재시작이 완성됨