守护服务Supervisor的安装和使用
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
接触到Supervisor,是因为将AspNet Core项目部署到CentOS时,执行dotnet XXX.dll后,项目是可以正常运行起来,但是Shell窗口关闭后项目就停了,后来就看到需要配置守护服务
1.安装Supervisor
1 | yum install -y epel-release |
安装完成后,执行supervisord --version 会显示版本
2.设置Supervisor开机启动
1 2 | systemctl enable supervisord systemctl start supervisord |
不是root用户的话,命令前面记着加上sudo
3.创建配置文件
配置文件的路径为:/etc/supervisord.conf,执行 cat /etc/supervisord.conf,可以看到配置文件的指定目录为:
所以我们进到这个路径下创建配置文件
执行命令 vi webcore.ini会创建webcore.ini文件,然后输入下面的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [program:webcore] command=/usr/bin/dotnet WebCore.dll ; 输入执行命令,这里表示 dotnet WebCore.dll directory=/home/www/XCJS-Test ; 应用程序根目 autostart= true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它 autorestart= true ; 是否自动重启,当执行 dotnet WebCore.dll 启动失败时,会重复的自动重启 logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小 logfile_backups=10 ; 日志备份个数 loglevel=info ; 记录日志级别 stderr_logfile=/data/logs/webcore/webcore.err.log ; 指定标准错误输出日志文件 stdout_logfile=/data/logs/webcore/webcore. out .log ; 指定标准输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet WebCore.dll 命令>的时候传入到 .NET Core 应用程序中 user=root ;启动服务的用户 stopsignal=INT redirect_stderr= true |
4.创建日志文件目录
1 | mkdir -p /data/logs/webcore |
配置完成后,记着重启一下supervisor
systemctl restart supervisord
总结
安装Supervisor有很多种方法,这里暂时先只介绍了一种,后续会补充其它方法。
项目在运行的状态下,如果要更新一些东西,替换完后需要重启(systemctl restart supervisord)一下守护服务才会生效。
参考:
标签:
supervisor
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 10亿数据,如何做迁移?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 易语言 —— 开山篇
· Trae初体验