上一篇文章讲了怎么部署.net core开发环境并运行,但是有个问题,就是如果你部署好并通过dotnet运行后,退出当前SSH之后,程序就会被关闭,这个问题是因为程序运行在当前session中,如果session结束了,自然也就被会关闭,所以我们需要一个容器来运行与管理进程,这个容器就是supervisord 。
安装supervisor
在ubuntu下通过apt-get安装supervisor:
1 | apt-get install -y supervisor |
安装完成后,输入service supervisor status
看看是否安装成功,安装成功会显示类似文字
1 2 3 4 5 | root@aaa:/# service supervisor status ● supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-04-13 14:38:11 UTC; 3 weeks 5 days ago Docs: http://supervisord.org |
配置supervisor
要让supervisor自动运行.net core程序需要修改下supervisor的默认配置,然后重启supervisor就可以生效了。
1 | vi /etc/supervisor/supervisord.conf |
然后修改底部类似[program:web]
这个节点
1 2 3 4 5 6 7 8 9 10 | [program:web] command=/usr/bin/dotnet /{你的程序目录}/web.dll directory=/{你的程序目录} user =root autostart=true autorestart=true startsecs=3 stderr_logfile=/tmp/web_err.log stdout_logfile=/tmp/web.log environment=ASPNETCORE__ENVIRONMENT=Production |
修改完成后大写的ZZ
保存并退出vi,然后重新加载配置
1 | supervisorctl reload |
然后启动线程
1 | supervisorctl start web |
以上就是supervisord 运行.net core的步骤。
官方详细配置文档