Appearance
Supervisor Commands
Supervisor is a process manager that keeps Laravel queue workers and other background processes running. It automatically restarts crashed processes.
🟠 MEDIUM RISK
Restarting Supervisor will interrupt all queue workers. Pending jobs will resume after restart.
Table of Contents
Service Management
Check Supervisor Status
bash
sudo systemctl status supervisorStart Supervisor
bash
sudo systemctl start supervisorStop Supervisor
🟠 QUEUE PROCESSING STOPS
Stopping Supervisor will stop all queue workers. SMS, emails, and background jobs won't process.
bash
sudo systemctl stop supervisorRestart Supervisor
bash
sudo systemctl restart supervisorEnable on Boot
bash
sudo systemctl enable supervisorProcess Management
View All Processes
bash
sudo supervisorctl statusExample Output:
laravel-worker:laravel-worker_00 RUNNING pid 12345, uptime 2:30:45
laravel-worker:laravel-worker_01 RUNNING pid 12346, uptime 2:30:45
horizon RUNNING pid 12347, uptime 2:30:45Start All Processes
bash
sudo supervisorctl start allStop All Processes
🟠 QUEUE STOPS
All background processing will stop.
bash
sudo supervisorctl stop allRestart All Processes
bash
sudo supervisorctl restart allManage Specific Process
bash
# Start specific process
sudo supervisorctl start laravel-worker:*
# Stop specific process
sudo supervisorctl stop laravel-worker:*
# Restart specific process
sudo supervisorctl restart laravel-worker:*Reload Configuration
bash
# After editing config files
sudo supervisorctl reread
sudo supervisorctl updateAdd New Process
bash
sudo supervisorctl reread
sudo supervisorctl add process-nameRemove Process
bash
sudo supervisorctl remove process-nameConfiguration
Configuration Directory
bash
ls -la /etc/supervisor/conf.d/View Laravel Worker Config
bash
sudo nano /etc/supervisor/conf.d/laravel-worker.confExample Laravel Worker Config
ini
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/worker.log
stopwaitsecs=3600Key Configuration Options
| Option | Description |
|---|---|
numprocs | Number of worker processes |
autostart | Start when Supervisor starts |
autorestart | Restart if process dies |
user | Run as this user |
stopwaitsecs | Wait time before force kill |
stdout_logfile | Log file location |
After Config Changes
bash
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart allLog Management
View Process Logs
bash
# Tail specific process log
sudo tail -f /var/www/html/storage/logs/worker.log
# Or use supervisorctl
sudo supervisorctl tail -f laravel-worker:laravel-worker_00View Supervisor Main Log
bash
sudo tail -f /var/log/supervisor/supervisord.logClear Worker Logs
bash
sudo truncate -s 0 /var/www/html/storage/logs/worker.logTroubleshooting
Common Issues
Process Won't Start
bash
# Check config syntax
sudo supervisorctl reread
# Check process log
sudo supervisorctl tail laravel-worker:laravel-worker_00 stderr
# Check main log
sudo tail -50 /var/log/supervisor/supervisord.logProcess Keeps Restarting
bash
# Check if command is correct
php /var/www/html/artisan queue:work --help
# Check permissions
ls -la /var/www/html/artisan
# Check PHP errors
sudo tail -100 /var/log/php8.3-fpm.log"FATAL Exited too quickly"
bash
# Process is crashing immediately
# Check the actual command manually:
cd /var/www/html
sudo -u www-data php artisan queue:work redis --tries=3Socket Error
bash
# Check supervisor socket
ls -la /var/run/supervisor.sock
# Restart supervisor service
sudo systemctl restart supervisorUseful Commands
bash
# Clear all process state
sudo supervisorctl clear all
# Get process info
sudo supervisorctl status laravel-worker:*
# Signal process (graceful stop)
sudo supervisorctl signal SIGTERM laravel-worker:*Laravel Queue Restart
bash
# Gracefully restart queue workers (via Laravel)
cd /var/www/html
php artisan queue:restart
# This signals workers to finish current job then restartQuick Reference Card
| Action | Command |
|---|---|
| Check status | sudo supervisorctl status |
| Start all | sudo supervisorctl start all |
| Stop all | sudo supervisorctl stop all |
| Restart all | sudo supervisorctl restart all |
| Reload config | sudo supervisorctl reread && sudo supervisorctl update |
| View logs | sudo supervisorctl tail -f process-name |
| Service status | sudo systemctl status supervisor |
| Service restart | sudo systemctl restart supervisor |
| Config dir | /etc/supervisor/conf.d/ |
