环境:

Centos 7

已安装.Net core 2.0.0  .Net core 1.1.2

1、Supervisor安装

* yum 安装
yum install supervisor

(阿里云验证通过)

 

* easy_install 安装
 如果yum安装无法找到资源,可以通过easy_install

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo
python

安装supervisor

easy_install supervisor

 

 

2、配置supervisor

* 在etc下创建目录,并赋权限
              mkdir -m 700 -p /etc/supervisor

* 在目录“ /etc/supervisor”下创建配置文件
              echo_supervisord_conf > /etc/supervisor/supervisord.conf

* 修改配置文件
               vim /etc/supervisor/supervisord.conf

           在文件末尾添加,注意首尾需无空格,需顶格
[include]
files=/etc/supervisor/conf.d/*.conf
* 在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”
            mkdir -m 700 /etc/supervisor/conf.d

 

 

3、创建进程配置文件

  vim /etc/supervisor/conf.d/MyDotNetName.conf

"MyDotNetName"可以为dotnet core 入口dll文件名字 ,插入内容,注意首尾需无空格,需顶格:
[program:MyDotNetName] command=/bin/bash -c "dotnet MyDotNetName.dll" directory
=/usr/PublishOutput/
stderr_logfile=/var/log/MyDotNetName.error.log stdout_logfile=/var
/log/MyDotNetName.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT autostart=true
autorestart=true startsecs=3 [program:MyDotNetName] ;显示名称 command=/bin/bash -c
"dotnet MyDotNetName.dll" ;运行命令,启动dotnet进程 directory=/usr/PublishOutput/
;MyDotNetName目录 stderr_logfile=/var/log/MyDotNetName.error.log ;错误日志文件
stdout_logfile=/var/log/MyDotNetName.stdout.log ;日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量 user=root ;进程执行用户
autostart=true ;自动启动 autorestart=true   ;是否自动重启 startsecs=3 ;自动重启间隔时间

4、创建supervisor 自启动服务

vim /etc/systemd/system/supervisor.service

编辑内容:
[Unit] Description=supervisor [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
使配置生效

systemctl daemon-reload

设置服务开机启动,即设置enable

systemctl enable supervisor.service

启动服务

systemctl start supervisor.service

 

5、验证dotnet进程是否启动

使用命令“ps -ef | grep dotnet”查看dotnet 是否运行
[[email protected] ~]# ps -ef | grep dotnet root 2281 2280 0 15:27 ? 00:00:00
dotnet MyDotNetName.dll root2302 2217 0 15:30 pts/0 00:00:00 grep --color=auto
dotnet
 

6、supervisor远程管理

使用命令“vim /etc/supervisor/supervisord.conf”修改配置文件,如下设置
;[inet_http_server] ; inet (TCP) server disabled by default ;port=127.0.0.1:
9001 ; (ip_address:port specifier, *:port for all iface) ;username=user ; (
default is no username (open server)) ;password=123 ; (default is no password
(open server))
;以下内容开启http服务 [inet_http_server] port=192.168.1.71:9001 ;ip 加端口 username=admin
;登陆账号,可以不设password=123456 ;登陆账户,可以不设
重启服务,就可以访问了

注意防火墙是否对端口9001例外

 

可能遇到的问题:

supervisor 启动dotnet.core 报“ too many start retries too quickly”
<http://www.cnblogs.com/hobinly/p/8085404.html>