Linux下为 dotnet 创建守护进程
Supervisor 介绍
Supervisor是采用 Python(2.4+) 开发的,它是一个允许用户管理 基于 Unix 系统进程的 Client/Server 系统,提供了大量功能来实现对进程的管理。
Supervisor 安装
在 linux 中使用以下命令进行安装:
ubuntu sudo apt-get install supervisor centos yum install supervisor python pip install supervosor easy_install supervisor
Supervisor 配置,常用命令
安装完成之后,在 /ect/supervisor/conf.d/
目录下新建一个配置文件(touch HelloWebApp.conf
),取名为 HelloWebApp.conf
打开HelloWebApp.conf (vim HelloWebApp.conf
),写入如下命令:
[program:HelloWebApp] command=dotnet HelloWebApp.dll #要执行的命令 directory=/home/yxd/Workspace/publish #命令执行的目录 environment=ASPNETCORE__ENVIRONMENT=Production #环境变量 user=www-data #进程执行的用户身份 stopsignal=INT autostart=true #是否自动启动 autorestart=true #是否自动重启 startsecs=1 #自动重启间隔 stderr_logfile=/var/log/HelloWebApp.err.log #标准错误日志 stdout_logfile=/var/log/HelloWebApp.out.log #标准输出日志
配置好以后 (:wq
保存退出),需要重新加载一下配置
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
或者你可以直接重启 Supervisor:
sudo service supervisor stop sudo service supervisor start
如果启动的时候报错,可以打开位于/etc/log/supervisor/supervisord.log
文件来查看具体的日志。
其中dotnet 命令输出的日志文件分别为位于
/var/log/HelloWebApp.err.log
/var/log/HelloWebApp.out.log
在这些文件里面你可以查看程序中的异常信息或者是运行信息。
打开浏览器,输入 http://localhost:5000
发现已经可以浏览了。
Supervisor 常用命令
supervisorctl shutdown #关闭所有任务 supervisorctl stop|start program_name supervisorctl status #查看所有任务状态
Supervisor UI 管理台
Supervisor 默认给我们提供了一个图形界面来供我们管理进程和任务,在 macOS 中默认配置的有,但是在 Linux 中我们需要手动开启一下。
打开位于/etc/supervisor/supervisord.conf
文件,添加inet_http_server 节点
[inet_http_server] port = 127.0.0.1:9001
然后就可以通过界面来查看运行的进程了