参考上一篇文章,试一下

 感觉生成exe一直没有实现。

后来换成写了一个bat 

使用命令:

dotnet XXX.dll

在写一个守护进程对这个进行守护,可以成功实现对netcore程序在windows下的守护

*********************************centos下如何守护dotnet程序*********************

安装supervisor

第一步:yum install epel-release

netcore之托管程序_netcore

 第二步:yum install -y supervisor

netcore之托管程序_netcore_02

 第三步:设置开机自启动

systemctl enable supervisord

systemctl disable supervisord

netcore之托管程序_netcore_03

第四步:启动supervisord服务

systemctl start supervisord

systemctl stop supervisord

第五步:查看supervisord服务状态

systemctl status supervisord

netcore之托管程序_netcore_04

第六步:查看是否存在supervisord进程

ps -ef|grep supervisord

*******************上面只能检测是否安装成功,想要他按照我们的思路工作,还需要在配置文件做一下功夫********

安装好supervisor后需要手动的生成配置文件

echo_supervisord_conf | sudo tee /etc/supervisord.conf

netcore之托管程序_netcore_05

修改include

[include]

files = /etc/supervisor.d/*.conf

读取这里的配置文件

*********************网页管理,需要把配置文件修改一下*********

netcore之托管程序_netcore_06

把;去掉,亏在这里,难怪一直失败。

在输入重启服务,端口出来了

netcore之托管程序_netcore_07

网页可以登录,但是没有启动的服务,还需要继续检查一下原因,由于防火墙导致无法访问,关闭防火墙之后可以了。

netcore之托管程序_netcore_08

netcore之托管程序_netcore_09

看下面的配置文件,崩溃啊,居然没有把;去掉

netcore之托管程序_netcore_10

[program:Webtt]
command=dotnet /netcore/tt/Webtt.dll
directory=/netcore/tt
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/var/log/ossoffical.err.log
stdout_logfile=/var/log/ossoffical.out.log

 

继续重启服务

systemctl restart supervisord

supervisord -c /etc/supervisord.conf  #启动服务

supervisorctl reload #重新加载配置

supervisorctl shutdown #关闭

systemctl enable supervisord #开机启动

systemctl is-enabled supervisord #验证是否开机启动

 

**********************还有错误***************

使用systemctl status supervisord.service可以查看,发现是我的配置文件错误

netcore之托管程序_netcore_11

 通过对比,发现问题处在[]上面,为什么同样是[],但是他们的16进制的值缺不一样呢?

看下图,比较一下:这个是0x5B

netcore之托管程序_netcore_12

 下面的确实4个字节,为什么前面会多3个字节呢?无法理解啊,尝试把签名3个字节去掉

netcore之托管程序_netcore_13

 后来查明,原来前面3个字符是Utf-8自动添加的,我们这里需要修改一下编码格式。

修改格式为ansi之后,前面3个自己消失了。,再试一把。终于好了

netcore之托管程序_netcore_14