linux 使用supervisor 实现进程守候 部署netcore项目
配置supervisor实现进程守护
1.安装supervisor
yum install supervisor
2.启动服务
supervisord -c /etc/supervisord.conf
进入 cd /etc 目录 找到supervisord.conf 配置文件 和 supervisord.d 文件夹,使用vim编辑supervisord.conf文件,拉到最底部我们可以看到

files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件
3.编辑配置文件
随后我们在supervosprd.d中创建一个delploy.ini文件并编辑如下
[program:DeployLinux] #DeployLinux 为程序的名称 command=dotnet DeployLinux.dll --urls=http:*:xxxx #需要执行的命令 directory=/home/publish #命令执行的目录 environment=ASPNETCORE__ENVIRONMENT=Production #环境变量 user=root #用户 stopsignal=INT autostart=true #是否自启动 autorestart=true #是否自动重启 startsecs=3 #自动重启时间间隔(s) stderr_logfile=/var/log/ossoffical.err.log #错误日志文件 stdout_logfile=/var/log/ossoffical.out.log #输出日志文件 注意文件路径需要手动自己建
4.重载配置文件
执行命令使用心得配置文件运行supervisor服务
supervisorctl reload //重新加载配置文件
5.访问网站
在未执行dotnet xxx.dll启动程序的情况下 在外部访问网站路径成功

成功后supervisor 日志如下,在日志中我们看到在启动过程中,服务加载了我们的配置文件 deploy.ini

6.意外情况
这个问题本不该遇到的,但是由于我是在一无所知的情况下操作的,所以因为没有启动服务而一度焦头烂额,碎记下来警醒自己

说明你没有启动服务,执行 supervisord -c /etc/supervisord.conf 启动即可
访问Supervisor的图形化界面
1.修改配置
将supervisord.conf 中的一段配置更改如下


注意将前面的分号去掉
2.重载supervisor配置
然后执行 supervisorctl reload 重新加载配置
3.开启端口
(若防火墙关闭无需考虑这一步)在访问其web管理界面之前,先需要开启你为他配置的端口,这里我们分配给他的是9001端口,下面是端口管理的一些命令
firewall-cmd --query-port=9001/tcp //监测端口是否开启 firewall-cmd --add-port=9001/tcp //开启80端口 firewall-cmd --remove-port=9001/tcp //关闭80端口 sudo firewall-cmd --reload //重新加载配置

4.访问图形界面
端口开启成功后访问supervisor的界面程序进行进程管理

总结
项目部署流程
1、项目发布将发布包拷贝到linux服务器相应文件夹下(覆盖原始文件即可)
编辑文件
vim命令进入编辑
按下 i 键进行编辑
按下esc结束编辑
编辑好后 :wq 退出并保存
2、执行命令
supervisorctl reload
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构