Project

General

Profile

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

상혁 손, 2025-10-12 16:34

1 1 상혁 손
# Podman-compose 서비스 등록
2
3
ssd@SSD-SERVER:/work/podman/postgresql-server$ cat ~/.config/systemd/user/my-server.service
4
`[Unit]`
5
`Description=Podman Compose service for PostgreSQL Project`
6
`#Requires=network-online.target`
7
`#After=network-online.target`
8
`# Podman 소켓이 준비될 때까지 기다립니다.`
9
`Wants=podman.socket`
10
`After=podman.socket`
11
12
`[Service]`
13
`Type=oneshot`
14
`RemainAfterExit=true`
15
16
`# 프로젝트 폴더를 작업 디렉토리로 지정합니다.`
17
`WorkingDirectory=/work/podman/postgresql-server` 
18
19
`# 서비스 시작 명령어 (백그라운드 실행)`
20
21 2 상혁 손
`#필요하다면 리소스가 준비될때까지 sleep하도록 대기`
22 1 상혁 손
23 2 상혁 손
`ExecStartPre=/bin/sleep 30`
24 1 상혁 손
25
#/usr/bin/podman-compose가 있는지 /usr/local/bin/podman-compose가 있는지 정확히 지정 필요
26
`ExecStart=/usr/bin/podman-compose up -d`
27
28
`# 서비스 중지 명령어`
29
`ExecStop=/usr/bin/podman-compose down`
30
31
`# 실패 시 10초 후 재시작` 
32
33
#gpu의 경우 언제 리소스가 활성화 될지 모르기 때문에 failure에 대비해서 30초로 설정
34
`#Restart=on-failure`
35
`#RestartSec=10`
36
37
`[Install]`
38
`WantedBy=default.target`
39
40
위와 같은 형태로 서비스를 등록하면 됨
41
42
시스템 재시작시에 자동으로 시작하게 하는방법은 linger를 통해서
43
44
`sudo loginctl enable-linger $(whoami)`
45
`loginctl show-user $(whoami) | grep Linger`
46
47
Linger=yes 가 나오면 자동 재시작이 완성됨