---
# System prepended metadata

title: supervisor.conf
tags: [supervisor.conf, supervisorctl CLI, supervisorctl, supervisor, CLI]

---

supervisor.conf
===
###### tags: `supervisor`
###### tags: `supervisor`, `supervisor.conf`, `supervisorctl CLI`, `supervisorctl`, `CLI`

<br>

[TOC]

<br>


## supervisor.conf 範例
> `/etc/supervisor/supervisord.conf`

```conf=
; Unix socket server configuration for supervisorctl communication
; Required to enable supervisorctl CLI tool for interactive process management
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700

[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
childlogdir=/var/log/supervisor
user=root

; Supervisorctl client configuration
; Tells supervisorctl how to connect to supervisord via Unix socket
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

; RPC interface configuration
; Enables XML-RPC interface for supervisorctl to communicate with supervisord
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[program:sackd]
command=/bin/bash /opt/slurm/bin/start-sackd.sh
autostart=true
autorestart=true
startretries=1
stdout_logfile=/var/log/slurm/sackd.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stderr_logfile=/var/log/slurm/sackd.error.log
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
priority=100

[program:iam-sync-service]
command=/bin/bash -c 'cd /app && exec /home/syncuser/.local/bin/python -m src.main -c /app/config/config.yaml'
user=syncuser
autostart=%(ENV_AUTOSTART_IAM_SYNC)s
autorestart=true
startretries=3
stdout_logfile=/var/log/slurm-iam-sync/sync-service.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stderr_logfile=/var/log/slurm-iam-sync/sync-service.error.log
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
environment=PATH="/home/syncuser/.local/bin:%(ENV_PATH)s",PYTHONUNBUFFERED="1"
priority=200
depends_on=sackd
```

<br>

---

<br>

## 如何啟用 supervisorctl CLI
```conf
; Unix socket server configuration for supervisorctl communication
; Required to enable supervisorctl CLI tool for interactive process management
[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700

; Supervisorctl client configuration
; Tells supervisorctl how to connect to supervisord via Unix socket
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

; RPC interface configuration
; Enables XML-RPC interface for supervisorctl to communicate with supervisord
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
```

<br>

{%hackmd vaaMgNRPS4KGJDSFG0ZE0w %}