.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 - ...
随机推荐
- ubuntu 上已经安装libxml2还提示需要reinstall的解决方法
最近在ubuntu上配置环境,遇到一些奇怪的问题,已经安装了libxml2了,运行 apt-get install libxml2提示已经是最新版本了,可以在安装软件的时候还是提示没有libxml2, ...
- Junit 3.8.1 源码分析之两个接口
1. Junit源码文件说明 runner framework:整体框架; extensions:可以对程序进行扩展; textui:JUnit运行时的入口程序以及程序结果的呈现方式; awtui:J ...
- python widows安裝scipy
https://blog.csdn.net/github_39611196/article/details/76718707 Python3.x直接运行pip install scipy即可.Pyth ...
- Power Strings----poj2406(kmp扩展 循环节)
题目链接:http://poj.org/problem?id=2406 题意:就是求串s能够最多由多少个相同的串a串联而成: 例如 ababab 由3个ab串联而成: abababa 只能由1个aba ...
- 20.Bulk Write Operations-官方文档摘录
1.有序操作列表将会串行执行,但如果在一个写操作过程出现异常错误,则不会处理剩余的任何写操作 2.无序操作列表将会并发执行,如果在一个写操作过程出现异常错误,则不影响,继续执行(并发无序) 3.对比无 ...
- Python并行编程(一):基本概念
1.线程和进程 进程是应用程序的一个执行实例,比如,在桌面上双击浏览器将会运行一个浏览器.线程是一个控制流程,可以在进程内与其他活跃的线程同时执行.控制流程指的是顺序执行一些机器指令.进程可以包含多个 ...
- git学习------>git-rev-parse命令初识
一.准备工作 第一步:在d盘git test目录下,新建工作区根目录demo,进入该目录后,执行git init创建版本库. DH207891+OuyangPeng@DH207891 MINGW32 ...
- Python(socket编程——2)
import socket ''' socket.socket(socket_family,socket_type,protocal=0) socket_family 可以是 AF_UNIX 或 AF ...
- 我与前端之间不得说的三天两夜之css基础
前端基础之CSS CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. ''' selector { property: value; property: value; ... ...
- mysql数据库从删库到跑路之mysql其他
一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据 ...