.Net Core Linux部署之进程守护 Supervisor 安装配置
1.Supervisor 安装
//安装easy_install
yum install python-setuptools
//安装Supervisor
easy_install supervisor
2.配置 Supervisor
//创建配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
//指定配置文件
supervisord -c /etc/supervisor/supervisord.conf
//打开配置文件
vim /etc/supervisor/supervisord.conf
//在最后增加配置
[include]
files=conf.d/*.conf
3.程序进程配置
//创建配置文件目录
mkdir /etc/supervisor/conf.d/
//新建配置文件
vim /etc/supervisor/conf.d/testdotnetcore.conf
testdotnetcore.conf文件中写入以下内容:
[program:testdotnetcore]
command=dotnet TestDotNetCore.dll
directory=/www/test/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/testdotnetcore.err.log
stdout_logfile=/var/log/testdotnetcore.out.log
说明:
[program:testdotnetcore]
//要执行的命令
command=dotnet TestDotNetCore.dll
//命令执行的目录
directory=/www/test/
//环境变量
environment=ASPNETCORE__ENVIRONMENT=Production
//进程执行的用户身份
user=root
stopsignal=INT
//是否自动启动
autostart=true
//是否自动重启
autorestart=true
//自动重启间隔
startsecs=1
//标准错误日志
stderr_logfile=/var/log/testdotnetcore.err.log
//标准输出日志
stdout_logfile=/var/log/testdotnetcore.out.log
保存退出,并执行:
//重新加载配置
supervisorctl reload
到此程序应该已经启动。
4.设置开机启动
//打开文件
vim /lib/systemd/system/supervisord.service
文件中写入以下命令:
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
说明:
[Unit]
//服务描述
Description=Supervisor daemon
//描述服务类别
After=rc-local.service
[Service]
//设置进程的启动类型, 必须设为 simple, forking, oneshot, dbus, notify, idle 之一
//如果设为 forking , 那么表示 ExecStart= 进程将会在启动过程中使用 fork() 系统调用
Type=forking
//ExecStart 启动命令
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
//ExecStop 停止命令
ExecStop=/usr/bin/supervisorctl shutdown
//ExecReload 重启命令
ExecReload=/usr/bin/supervisorctl reload
//设置在单元停止时,杀死进程的方法。 取值范围如下: control-group, process, mixed, none
//process 表示仅杀死主进程
KillMode=process
//当服务进程正常退出、异常退出、被杀死、超时的时候, 是否重新启动该服务
//对于需要长期持续运行的守护进程, 推荐设为 on-failure 以增强可用性
Restart=on-failure
//重启服务前暂停多长时间
//默认值是100毫秒(100ms)。 如果未指定时间单位,那么将视为以秒为单位
RestartSec=30s
[Install]
WantedBy=multi-user.target
更多说明参考:http://www.jinbuguo.com/systemd/systemd.service.html
http://www.jinbuguo.com/systemd/systemd.kill.html
保存退出并执行:
//设置开机启动
systemctl enable supervisord.service
//查看设置是否生效
systemctl is-enabled supervisord.service
5.其它辅助
//关闭所有任务
supervisorctl shutdown
//启动所有进程
supervisorctl start all
//停止所有进程
supervisorctl stop all
//启动某一个特定进程,program-name为[program:xx]中的xx
supervisorctl start program-name
//停止某一个特定进程,program-name为[program:xx]中的xx
supervisorctl stop program-name
//重启所有
supervisorctl restart all
//重启某一进程,program-name为[program:xx]中的xx
supervisorctl reatart program-name
//查看所有任务状态
supervisorctl status
//查看报错日志
more /var/log/testdotnetcore.err.log
//查看运行日志
more /var/log/testdotnetcore.out.log
文章出处:http://www.cnblogs.com/anech/p/6836231.html
.Net Core Linux部署之进程守护 Supervisor 安装配置的更多相关文章
- 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用
基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...
- Linux进程守护——Supervisor 使用记录
0.旁白 Supervisor是个父进程,你要守护的进程会以Supervisor的子进程形式存在,所以老子才可以管儿子 官网链接:http://supervisord.org/ [5.参数]那块不要看 ...
- Linux部署.NetCore站点 使用Supervisor进行托管部署
前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...
- supervisor安装配置与使用
supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...
- Linux下Samba详解及安装配置
1.简介 2.安装配置 3.在windows和linux系统上验证 一.简介 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据, ...
- Linux(Ubuntu) Mysql的安装配置例子以及常用命令
1.安装配置例子 有空再写 2.注意事项 (1)启动mysql 在/etc/mysql 目录下 service mysql start 新版本是(service mysqld start ) (2 ...
- 基于Linux命令行KVM虚拟机的安装配置与基本使用
背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使 ...
- .Net Core Linux部署
.Net Core是微软最新的开源框架跨平台框架 官网文档 .Net Core相关发布指令,以及发布RId便于查看 RID链接 .Net Core要想发布到Linux有俩种方案,分别是依赖框架的部署( ...
- .NET Core Linux 部署实践
部署环境:CentOS 7 x64 必要条件:当前用户有sudo权限 1. 安装依赖包sudo yum install libunwind libicu2. 下载.net core安装文件curl - ...
随机推荐
- Logstash利用GeoIP库显示地图以及通过useragent显示浏览器(
http://www.nibayuan.com/articles/2016/02/23/elk-logstash-geoip-kibana-tilemap.html 我们通过Logstash收集的Ng ...
- Random/Stochastic
---恢复内容开始--- ===================================================== A random variable's possible valu ...
- 使用 postMessage + iframe 实现跨域通信
一.postMessage window.postMessage() 方法可以安全地实现跨源通信.通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(44 ...
- Clairewd’s message--hdu4300(Next数组的运用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题意就是给你26的字母的加密方式,然后又给了一个串s1是包含加密后的和没有加密的但是没有加密的可 ...
- js的class属性获取、增加、移除
2018年4月10日,北京城的第三份工作已经开始,坚信自己在这里能学到很多,加油! 贴代码,昨天回顾了一点js知识: <script> $(function(){ //赋予一个点击事件 $ ...
- Linux的概念与体系(转)
学linux就用它了 http://www.cnblogs.com/vamei/archive/2012/10/10/2718229.html
- cookie和session的自我介绍
Cookie是什么? cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是 ...
- Jmeter(二)参数化
参数化是自动化测试脚本的一种常用技巧.简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则:这样,脚本在运行时就可以根据需要选取不同的参数值作为输入.这 ...
- 自己动手写RNN
说的再好,也不如实际行动,今天手写了一个RNN,没有使用Numpy库,自己写的矩阵运算方法,由于这也只是个学习用的demo,所以矩阵运算那一部分写的比较丑陋,见笑了. import com.mylea ...
- Java基础知识陷阱(三)
本文发表于本人博客. 之前都讲了有关字符串的陷阱,那今天来说下关于静态这个东西,这分为静态变量.静态方法,先看下面的代码请问结果输出是什么?: class Person01{ private stat ...