Systemd¶
Best for modern Linux servers with direct process control. Files: deployment/soniq-worker.service, deployment/soniq-scheduler.service, and deployment/soniq-dashboard.service.
Worker service¶
[Unit]
Description=Soniq Worker
After=network.target
[Service]
Type=exec
User=soniq
Group=soniq
WorkingDirectory=/opt/soniq
Environment=SONIQ_DATABASE_URL=postgresql://soniq:password@localhost/soniq_prod
Environment=SONIQ_LOG_LEVEL=INFO
Environment=SONIQ_JOBS_MODULES=myapp.jobs
ExecStart=/opt/soniq/venv/bin/soniq worker --concurrency=4
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
Restart=always
RestartSec=5
StartLimitIntervalSec=0
# Security hardening
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/opt/soniq /var/log/soniq
# Resource limits
MemoryMax=512M
CPUQuota=200%
# Graceful shutdown -- match your longest job timeout
TimeoutStopSec=310
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=soniq-worker
[Install]
WantedBy=multi-user.target
Dashboard service¶
[Unit]
Description=Soniq Dashboard
After=network.target soniq-worker.service
Wants=soniq-worker.service
[Service]
Type=exec
User=soniq
Group=soniq
WorkingDirectory=/opt/soniq
Environment=SONIQ_DATABASE_URL=postgresql://soniq:password@localhost/soniq_prod
ExecStart=/opt/soniq/venv/bin/soniq dashboard --host=0.0.0.0 --port=8000
Restart=always
RestartSec=5
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/opt/soniq /var/log/soniq
MemoryMax=256M
StandardOutput=journal
StandardError=journal
SyslogIdentifier=soniq-dashboard
[Install]
WantedBy=multi-user.target
Managing the services¶
sudo cp deployment/soniq-worker.service /etc/systemd/system/
sudo cp deployment/soniq-dashboard.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable soniq-worker soniq-dashboard
sudo systemctl start soniq-worker soniq-dashboard
# Check status
sudo systemctl status soniq-worker
# View logs
sudo journalctl -u soniq-worker -f
# Restart
sudo systemctl restart soniq-worker
See also¶
- Deployment overview - prerequisites, queue routing, performance tuning
- Reliability - graceful shutdown, stuck-job recovery