Frappe多Bench环境Supervisor配置异常:调度器与Worker故障
多用户Frappe环境下Worker与调度器故障排查
环境背景
- CentOS专属服务器,root用户安装Frappe bench CLI
- 服务器存在多个Linux用户,每个用户对应独立域名/子域名
- 各用户拥有独立Bench与站点,已手动配置NGINX和Redis,所有站点可正常访问
问题现象
仅首个部署的站点的调度器、后台Worker可正常运行,其余站点的相关组件故障,Supervisor报错如下:
frappe-bench-t1-redis:frappe-bench-t1-redis-cache RUNNING pid 12402, uptime 17:12:10 frappe-bench-t1-redis:frappe-bench-t1-redis-queue RUNNING pid 12401, uptime 17:12:10 frappe-bench-t1-redis:frappe-bench-t1-redis-socketio RUNNING pid 12405, uptime 17:12:10 frappe-bench-t1-web:frappe-bench-t1-frappe-web RUNNING pid 12429, uptime 17:12:10 frappe-bench-t1-web:frappe-bench-t1-node-socketio RUNNING pid 12428, uptime 17:12:10 frappe-bench-t1-workers:frappe-bench-t1-frappe-default-worker-0 FATAL can't find command 'None' frappe-bench-t1-workers:frappe-bench-t1-frappe-long-worker-0 FATAL can't find command 'None' frappe-bench-t1-workers:frappe-bench-t1-frappe-schedule FATAL can't find command 'None' frappe-bench-t1-workers:frappe-bench-t1-frappe-short-worker-0 FATAL can't find command 'None' frappe-bench-redis:frappe-bench-redis-cache FATAL Exited too quickly (process log may have details) frappe-bench-redis:frappe-bench-redis-queue RUNNING pid 12386, uptime 17:12:10 frappe-bench-redis:frappe-bench-redis-socketio RUNNING pid 12388, uptime 17:12:10 frappe-bench-t2-redis:frappe-bench-t2-redis-cache RUNNING pid 12384, uptime 17:12:10 frappe-bench-t2-redis:frappe-bench-t2-redis-queue RUNNING pid 12383, uptime 17:12:10 frappe-bench-t2-redis:frappe-bench-t2-redis-socketio RUNNING pid 12385, uptime 17:12:10 frappe-bench-t2-web:frappe-bench-t2-frappe-web RUNNING pid 12389, uptime 17:12:10 frappe-bench-t2-web:frappe-bench-t2-node-socketio RUNNING pid 12390, uptime 17:12:10 frappe-bench-t2-workers:frappe-bench-t2-frappe-default-worker-0 STOPPED Dec 31 07:00 PM frappe-bench-t2-workers:frappe-bench-t2-frappe-long-worker-0 STOPPED Dec 31 07:00 PM frappe-bench-t2-workers:frappe-bench-t2-frappe-schedule STOPPED Dec 31 07:00 PM frappe-bench-t2-workers:frappe-bench-t2-frappe-short-worker-0 STOPPED Dec 31 07:00 PM frappe-bench-web:frappe-bench-frappe-web RUNNING pid 12391, uptime 17:12:10 frappe-bench-web:frappe-bench-node-socketio RUNNING pid 12400, uptime 17:12:10 [truncated but repetitive lines] frappe-bench-t3-web:frappe-bench-t3-frappe-web RUNNING pid 12381, uptime 17:12:10 frappe-bench-t3-web:frappe-bench-t3-node-socketio RUNNING pid 12382, uptime 17:12:10 frappe-bench-t3-workers:frappe-bench-t3-frappe-default-worker-0 FATAL can't find command 'None' frappe-bench-t3-workers:frappe-bench-t3-frappe-long-worker-0 FATAL can't find command 'None' frappe-bench-t3-workers:frappe-bench-t3-frappe-schedule FATAL can't find command 'None' frappe-bench-t3-workers:frappe-bench-t3-frappe-short-worker-0 FATAL can't find command 'None'
配置对比
正常站点的supervisor.conf中bench路径配置正确:
[program:frappe-bench-frappe-schedule] command=/usr/local/bin/bench schedule priority=3 autostart=true autorestart=true stdout_logfile=/home/t2/frappe-bench/logs/schedule.log stderr_logfile=/home/t2/frappe-bench/logs/schedule.error.log user=t2 directory=/home/t2/frappe-bench [program:frappe-bench-frappe-default-worker] command=/usr/local/bin/bench worker --queue default priority=4 autostart=true
异常站点的配置中command字段被设为None,手动修改后执行bench setup supervisor无法解决问题。
解决步骤
1. 切换到目标用户环境
必须以对应站点的Linux用户身份操作,避免root权限导致的路径或权限问题:
su - [目标用户名] cd ~/frappe-bench
2. 验证Bench命令路径
确认当前用户能正确识别bench命令:
which bench
如果输出不是/usr/local/bin/bench,将bench路径添加到用户的环境变量中:
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc source ~/.bashrc
3. 生成用户专属Supervisor配置
以目标用户身份执行,跳过已手动配置的Redis:
bench setup supervisor --skip-redis --user [目标用户名]
4. 更新Supervisor配置并重启
将生成的配置链接到Supervisor配置目录,然后重载配置并重启服务:
sudo ln -s ~/frappe-bench/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench-[用户名].conf sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl restart all
5. 验证修复结果
查看Supervisor状态确认组件运行正常:
supervisorctl status
内容的提问来源于stack exchange,提问作者AlaaL
相关产品推荐
相关产品推荐

