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 安装配置的更多相关文章

  1. 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用

    基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...

  2. Linux进程守护——Supervisor 使用记录

    0.旁白 Supervisor是个父进程,你要守护的进程会以Supervisor的子进程形式存在,所以老子才可以管儿子 官网链接:http://supervisord.org/ [5.参数]那块不要看 ...

  3. Linux部署.NetCore站点 使用Supervisor进行托管部署

    前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...

  4. supervisor安装配置与使用

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  5. Linux下Samba详解及安装配置

    1.简介 2.安装配置 3.在windows和linux系统上验证 一.简介 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据, ...

  6. Linux(Ubuntu) Mysql的安装配置例子以及常用命令

    1.安装配置例子 有空再写 2.注意事项 (1)启动mysql 在/etc/mysql 目录下 service mysql start  新版本是(service mysqld start  ) (2 ...

  7. 基于Linux命令行KVM虚拟机的安装配置与基本使用

    背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使 ...

  8. .Net Core Linux部署

    .Net Core是微软最新的开源框架跨平台框架 官网文档 .Net Core相关发布指令,以及发布RId便于查看 RID链接 .Net Core要想发布到Linux有俩种方案,分别是依赖框架的部署( ...

  9. .NET Core Linux 部署实践

    部署环境:CentOS 7 x64 必要条件:当前用户有sudo权限 1. 安装依赖包sudo yum install libunwind libicu2. 下载.net core安装文件curl - ...

随机推荐

  1. Storm-源码分析-Stats (backtype.storm.stats)

    会发现, 现在storm里面有两套metrics系统, metrics framework和stats framework 并且在所有地方都是同时注册两套, 貌似准备用metrics来替代stats, ...

  2. django将数据库中数据直接传到html

    1.当然,前提是建立和配置好django数据库啦~ 2.在python后台函数中引入需要的表 #要读取home这个APP下的models.py文件,引入其中的Student_message_unedi ...

  3. LRU算法的Python实现

    http://flychao88.iteye.com/blog/1977653文章中介绍了常见的几种缓存淘汰策略 LRU:least recently used,最近最少使用算法.其实就是按使用时间倒 ...

  4. explain(desc)命令的使用

    获取 type:查询类型 1.可以判断出,全表扫描还是索引扫描(ALL就是全表扫描,其他就是索引扫描) 2.对于索引扫描来讲,可以西划分,可以判断是哪一种扫描 type的具体类型介绍: ALL:全表扫 ...

  5. python 递归深度优先搜索与广度优先搜索算法模拟实现

    一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件2.找出这一次和上一次关系3.假设当前 ...

  6. 如何用Qt Creator输出helloworld

    0 引言:相比于MFC只要直接在VS上搭建,Qt的配置就相对复杂了,Qt新手上路,老司机绕道,记录下配置Qt的整个过程,直到最终用C++输出“hello world”. 搭建环境:Win10 + qt ...

  7. ReferenceQueue

    @Test public void strongReference() { Object referent = new Object(); /** * 通过赋值创建 StrongReference * ...

  8. go-007-条件语句

    一.概述 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 1.if结构 if 布尔表达式 { /* ...

  9. Java时间处理类SimpleDateFormat的parse和format方法的正确使用

    Java中怎么才能把日期转换成想要的格式呢,或把字符串转换成一定格式的日期,如把数据库中的日期或时间转换成自己想要的格式,JAVA中提供了SimpleDateFormat类可以实现. SimpleDa ...

  10. layer插件的常用实例

    layer.msg(提示信息, {time:1000, icon:5, shift:6}, 回调方法); layer.alert(提示信息, function(index){ // 回调方法 laye ...