宝塔51特惠活动,企业版1099元/年,送SSL证书,最高立减2万元!查看活动
当前位置:论坛首页 > Linux面板 > 求助

【已解决】supervisor无法开启go语言的守护进程

发表在 Linux面板2024-3-11 18:50 [复制链接] 1 1890

本帖最后由 宝塔用户_cnysgd 于 2024-3-12 00:22 编辑

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:

免费版   8.0.5
系统版本:

云服务器,22.04.1-Ubuntu
问题描述:

go语言根目录下的某个文件,作为队列消耗进程,有func main()入口,编译为二进制文件是成功的,单独运行二进制文件也是可以运行以及正常消费的(图一)。
我的配置如下:
  1. [program:draw_image_queue]
  2. command=./drawQueue
  3. directory=/www/wwwroot/Xxx/
  4. autorestart=true
  5. startsecs=3
  6. startretries=3
  7. stdout_logfile=/www/server/panel/plugin/supervisor/log/draw_image_queue.out.log
  8. stderr_logfile=/www/server/panel/plugin/supervisor/log/draw_image_queue.err.log
  9. stdout_logfile_maxbytes=2MB
  10. stderr_logfile_maxbytes=2MB
  11. user=www
  12. priority=999
  13. numprocs=1
  14. process_name=%(program_name)s_%(process_num)02d
复制代码
均是默认配置。

启动的时候是提示启动成功(图二)。


但是后续就退出了,查看supervisor的日志和进程本身的日志都是为空。
请问一下如果是go语言的进程的话,是否是因为消费者中的for的死循环造成的,还是因为我部署的姿势不对?


相关截图(日志、错误):

图一,单独启动成功:command指向的也是二进制文件
启动成功.png


图二:supervisor提示启动成功:

提示启动成功.png

使用道具 举报 只看该作者 回复
发表于 2024-3-12 00:15:23 | 显示全部楼层
问题已经解决,原因是执行二进制文件的command有错误,在此贴出来,以供参考::
  1. [program:draw_image_queue]
  2. command=/www/wwwroot/sse_test/drawQueue
  3. directory=/www/wwwroot/sse_test/
  4. autorestart=true
  5. startsecs=5
  6. startretries=5
  7. stdout_logfile=/www/server/panel/plugin/supervisor/log/draw_image_queue.out.log
  8. stderr_logfile=/www/server/panel/plugin/supervisor/log/draw_image_queue.err.log
  9. stdout_logfile_maxbytes=2MB
  10. stderr_logfile_maxbytes=2MB
  11. user=www
  12. priority=999
  13. numprocs=1
  14. process_name=%(program_name)s_%(process_num)02d
复制代码


最重要的一点是,平时我们执行二进制文件的指令是:./二进制文件,而在执行的指令的选项不能填./二进制文件,而应该是:/路径/二进制文件,或者如果有设置directory配置,那么command应该是:二进制文件
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析
快速回复 返回顶部 返回列表