supervisor 启动dotnet.core 报“ too many start retries too quickly”
环境:
操作系统:Centos 7
dotnet core:2.0.0 2.1.3
问题:
在使用supervisor 配置守护进程时,启动dotnet.core程序失败,查看/tmp下supervisor日志,发现dotnet.core程序启动多次(127错误码)失败后,报“ too many start retries too quickly” 程序停止。
分析与解决:
因为环境是新配的,先检查dotnet 命令 是否正常,很大的可能是由于dotnet core 环境的问题
如果dotnet 没有问题,检查supervisor 配置的项目启动文件,验证:
1、是否命令有无问题,command是否可以被执行(使用绝对的路径试下)
把command 命令直接在控制台运行是否正常
2、修改command,不使用 /bin/bash -c "dotnet ****.dll" ,如command=dotnet ****.dll
3、检查执行目录是否正确
4、用户是否有执行权限
我发生的本次问题是:
没有在/usr/local/bin/下放入dotnet,即没有做命令:“sudo ln -s /opt/dotnet/dotnet /usr/local/bin” ,"/opt/dotnet/" 为dotnet 安装目录
虽然dotnet 能在控制台执行,是由于在profile 中添加了Path。而supervisor在调用命令时,bin/bash 无法获知dotnet 命令,在更换直接用dotnet ***.dll时,supervisor日志中显示,无法识别dotnet命令。