環境:
操作系統: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命令。
