1.后台运行 nohup方式
2.后台运行+开机自启动 supervisor方式
supervisor是一个守护进程,在这之前要安装好dotnet对应的SDK,另外也要将咱的服务部署文件夹放到服务器上并能够通过 dotnet **.dll命令正常启动
(1)首先安装supervisor,使用yum -y install supervisor 然后回车即可
安装路径/usr/bin/supervisord,配置文件/etc/supervisor.conf
(2)查看路径 /etc文件夹下面是否有supervisor.conf配置文件,如下图
如果有配置文件,可直接进去查看配置,
(一般是有的,即使这里没有也在其他的文件夹中,可以通过which supervisor.conf命令查找)
如果在/etc路径下没有配置文件则通过命令进行初始化(最好不要手动初始化配置文件)
(3)查看并修改supervisor的配置文件supervisor.conf
注意:键盘按下“i”键,文档才能被编辑
编辑完成想要保存退出时可以按下“Esc”键,然后点击:wq进行保存退出
把supervisord中的user配置项设置为root管理员账号
把光标拉到配置文件的最后看到Include的配置项如下图
表示在文件夹supervisord.d下的ini格式的文件都会加载在配置中,可以根据需要把需要监控的进程配置文件全部放在supervisord.d文件夹下面
(4)进入/etc/supervisord.d文件夹下面,通过vim UnifyApi.ini创建守护进程配置文件
(5)编辑UnifyApi.ini配置文件内容
[program:UnifyApi]
directory=/usr/abs/UnifyApi.Host/
command=/root/dotnet/dotnet /usr/abs/UnifyApi.Host/UnifyApi.dll
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
autostart=true
autorestart=true
startsecs=2
startretries=5
stopsignal=INT
stderr_logfile=/usr/abs/dotnet.err.log
stdout_logfile=/usr/abs/dotnet.out.log
一定要注意:command命令后面跟着的dotnet一定要dotnet的绝对路径位置,如果不确定dotnet具体的安装位置,可以回到根目录cd /通过命令which dotnet来查找,如图
配置文件编辑完成后,使用supervisorctl reload进行重新加载配置
如果需要监控其他的进程,只要重复(4)(5)增加一个守护进程的ini配置文件,再重新加载配置就可以了
到目前为止,咱的NetCore架构的WebApi可以正常在后台跑起来了,关掉远程连接进程窗口,服务也不会关闭了
(6)现在开始就要配置Supervisor开机启动
systemctl enable supervisord.service
进入目/usr/lib/systemd/system/,并创建supervisord.service文件
②设置开机启动
systemctl enable supervisord
systemctl daemon-reload
查看是否设置了开机启动 systemctl is-enabled supervisord
查看开机启动命令的运行状态 systemctl status supervisord
③重启,测试是否可以开机自启
经常遇到的问题是开机后服务不能正常启动,排查问题
(1)systemctl status supervisord,这个正常就说明是进程配置文件的问题了
(2)supervisorctl status查看进程是否正常
这个就是supervisor开机启动进程没问题,但是守护进程没有启动,报不能发现dotnet命令,这说明时配置文件中command名林中dotnet的绝对路径配置错误