.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 - ...
随机推荐
- linux伙伴系统接口alloc_page分析1
在内核中分配内存,最后要通过伙伴系统接口进行实际物理页面的分配,一个重要的接口便是alloc_page.本文介绍下alloc_page的主要流程,各个部分的执行.主要包含正常分配流程,当页面不足的时候 ...
- 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)
一.背景 最近想把一些Android Demo的运行效果图获取下来,但是一直使用真机进行调试,在电脑上不好截取一段gif动画.而之前使用模拟器的时候可以使用 GifCam 工具进行屏幕动画截取.Gif ...
- 安装python3 centos
1.在新centos中安装python3的步骤https://www.cnblogs.com/lclq/archive/2016/06/27/5620196.html 2.安装python3过程中报错 ...
- JavaScript日期处理
一.Date类型 在讲述常见日期问题之前,先梳理一下Date类型的方法. ECMAScript中的Date类型使用自UTC(Coordinated in Universal Time,国际协调时间)1 ...
- Linux使用scp命令实现文件的上传和下载
上传本地/data/project/test.zip 文件至远程服务器192.168.1.2的 /root 目录下,代码如下: scp /home/project/test.zip root@192 ...
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
Delphi程序调用C#.Net编译的DLL并打开窗体(详解)最近用C#.Net写了一个公用模块, 本以为仅提供给.Net程序使用, 但是领导要求把这些功能提供给旧系统使用, 天啦, 几套旧系统全是D ...
- jQuery Ajax使用总结
一.概述 jQuery对Ajax操作进行了封装,在jQuery中$.ajax()是属于最底层的方法,第2层是load().$.get()和$.post()方法,第三层是$.getScript()和$. ...
- 文本文件显示 删除文本文件前n个字符
#include<iostream>#include<string.h>using namespace std;void displayContent(const char * ...
- PL/SQL编程-块编程
(1). 简单分类 |————过程(存储过程) | ...
- spring boot 使用属性加载顺序
1.命令行中传入的参数 2.SPRING_APPLICATION_JSON中的属性.SPRING_APPLICATION_JSON是以JSON格式配置再系统环境变量中的内容 3.java:comp/e ...