解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

统计了三种方法:

一、使用nohup命令即可 【最简单】

nohup dotnet xxxx.dll 【xxxx为应用名称】

一般会报:nohup: ignoring input and appending output to ‘nohup.out’

解决方法命令:nohup dotnet Zhong.Famers.WebApi.dll –urls=”http://*:8080″ /dev/null 2>&1 &

二、将程序配置为服务

1、vim /etc/systemd/system/su.service

[Unit]
Description=su   ##服务名称

[Service]
WorkingDirectory=/home/yjcz/api  ##应用存放目录
ExecStart=/usr/bin/dotnet /home/yjcz/api/SU.WebApi.dll    ##应用启动命令

程序崩溃后自动启动
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=su.service
用户角色
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
The default value is 90 seconds for most distributions.

TimeoutStopSec=90

[Install]
WantedBy=multi-user.target

2、通过systemctl命令管理

启用服务进程
systemctl enable appname.service

启动服务进程
systemctl start appname.service

查看进程状态
systemctl status appname.service

重启进程
systemctl restart appname.service

停止进程
systemctl stop appname.service

查看日志,实时显示程序console信息
journalctl -fu appname.service

3、关于.netcore应用程序更新

可以直接覆盖旧的应用程序文件,然后使用systemctl restart 命令重启进程,不需要先关闭进程后覆盖文件再启动。

三、使用Supervisor守护ASP.NET Core应用程序 【比较繁琐但有web界面,微软推荐】

1、安装Python包管理工具

使用下面的命令安装Python包管理工具:

1、yum install python -setuptools

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

2、安装Supervisor

使用下面的命令安装Supervisor:

  1. easy_install supervisor

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

3、配置Supervisor应用守护

通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件,命令如下:

  1. mkdir /etc /supervisor
  2. echo_supervisord_conf >/etc/supervisor /supervisord .conf

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

然后我们编辑supervisord.conf文件,在文件的尾部添加如下配置:

  1. ;conf .d 为配置表目录的文件夹,需要手动创建
  2. [include ]
  3. files =/etc/supervisor /conf .d /*.conf

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

然后我们手动创建一个conf.d文件夹:

  1. mkdir /etc /supervisor /conf .d

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

创建完成后的目录结构如下图:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

supervisord.conf是主配置文件,应用程序配置文件放在conf.d文件夹下面。然后为应用程序创建一个名为AspNetCoreDeployDemo.conf的文件,并放到目录”/etc/supervisor/conf.d/”下,文件内容:

  1. [program :AspNetCoreDeployDemo ];程序名称,终端控制时需要的标识
  2. command =dotnet AspNetCoreDeployDemo .dll ;运行程序的命令
  3. directory =/root/NetCore /FDD /;命令执行的目录
  4. autorestart =true ;程序意外退出是否自动重启
  5. stderr_logfile =/var/log /AspNetCoreDeployDemo .err .log ;错误日志文件
  6. stdout_logfile =/var/log /AspNetCoreDeployDemo .out .log ;输出日志文件
  7. environment =ASPNETCORE_ENVIRONMENT =Production ;进程环境变量
  8. user =root ;进程执行的用户身份
  9. stopsignal =INT
  10. startsecs =10 ;自动重启时间间隔

执行下面的命令运行supervisord,查看是否生效:

  1. supervisord -c /etc /supervisor /supervisord .conf
  2. ps -ef |grep AspNetCoreDeployDemo

成功后的效果:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

这时我们在浏览器里面访问:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

这样就可以访问了。可以看到,这时我们就不需要在启动命令行了。而且关闭shell窗口也可以获取数据。

如果服务已经启动,修改配置文件可用”supervisorctl reload”命令来使其生效。

4、配置Supervisor开机启动

我们新建一个”supervisord.service”文件,文件内容如下:

  1. dservice for systemd (CentOS 7.0+)

  2. by ET-CS (https://github.com/ET-CS)

  3. [Unit ]
  4. Description =Supervisor daemon
  5. [Service ]
  6. Type =forking
  7. ExecStart =/usr/bin /supervisord -c /etc /supervisor /supervisord .conf
  8. ExecStop =/usr/bin /supervisorctl shutdown
  9. ExecReload =/usr/bin /supervisorctl reload
  10. KillMode =process
  11. Restart =on -failure
  12. RestartSec =15s
  13. [Install ]
  14. WantedBy =multi -user .target

将文件上传至”/usr/lib/systemd/system/”目录下,然后执行下面的命令:

  1. systemctl enable supervisord

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

执行下面的命令来验证是否为开机启动:

  1. systemctl is -enabled supervisord

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

到此为止,配置就完成了。我们可以重启虚拟机来验证一下是否开机就会启动应用程序。这里已经测试过了,重启虚拟机,然后用root用户登录就可以直接访问应用程序。

我们还可以使用Web管理界面来管理supervisor,在web管理界面,可以进行进程的重启,日志查看等操作。

web界面操作需要在supervisor的配置文件里添加[inet_http_server]选项组,我们使用记事本文件打开supervisord.conf文件,去掉[inet_http_server]选项组前面的”;”:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

修改之后重新加载服务:

  1. supervisorctl reload

如下图所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

由于使用了9001端口,所以我们需要把9001端口添加到防火墙中:

  1. firewall -cmd –zone =public –add -port =9001 /tcp –permanent

如下图所示

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

修改完防火墙之后需要重启防火墙配置:

  1. firewall -cmd –reload

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

然后在浏览器里面访问url:http://192.168.254.128:9001/,如果配置正常,则会要去输入用户名和密码,输入配置文件里面的用户名和密码即可登录,登录成功以后界面如下所示:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

在这里就可以看到正在运行的进程,而且还可以重启、停止等操作。

5、总结

Supervisor常用的相关命令如下:

  1. supervisorctl restart ;重启指定应用
  2. supervisorctl stop ;停止指定应用
  3. supervisorctl start ;启动指定应用
  4. supervisorctl restart all ;重启所有应用
  5. supervisorctl stop all ;停止所有应用
  6. supervisorctl start all ;启动所有应用

如果在执行命令的过程中,报下面的错误:

Error: .ini file does not include supervisorctl section

For help, use /usr/local/bin/supervisorctl -h

如截图这样:

解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

需要切换到/etc/supervisor目录在执行上面的命令。

undefined

Original: https://www.cnblogs.com/yaodun55/p/16309270.html
Author: 少年Dev
Title: 解决关闭shell会话窗口则会发现ASP.NET Core应用也会被关闭问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585534/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [20211105]索引分裂 块清除 日志增加.txt

    [20211105]索引分裂 块清除 日志增加.txt –//题目起的有点怪,只是我昨天在测试时遇到的怪问题,我通过测试环境演示出来。–//当非主键索引发生…

    Linux 2023年6月13日
    095
  • jenkins集成gitlab 授权登录

    配置方法:1.gitlab 新建个人application 如上图, Name, 名称随便填 Redirect URI: http://xxxxxx/securityRealm/f…

    Linux 2023年6月14日
    0161
  • 【实测】Python 和 C++ 下字符串查找的速度对比

    最近在备战一场算法竞赛,语言误选了 Python ,无奈只能着手对常见场景进行语言迁移。而字符串查找的场景在算法竞赛中时有出现。本文即对此场景在 Python 和竞赛常用语言 C+…

    Linux 2023年6月13日
    0116
  • Linux性能监控-sar

    sar是一个非常全面的一个分析工具,对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可以进行有效的分析。sar工具将对系统当前的状态进行取…

    Linux 2023年6月6日
    0129
  • 01-MySQL连接查询、聚合函数

    1、连接查询 1.1、左连接 以左表为基准进行查询,左表数据回全部显示出来 右表中如果匹配连接条件的数据则显示相应字段的数据,如果不匹配,则显示为NULL 1.2、右连接 以右表为…

    Linux 2023年6月7日
    0128
  • Linux Centos 打开和关闭防火墙

    systemctl status firewalld.service # 查看防火墙状态 systemctl start firewalld.service # 开启防火墙 sys…

    Linux 2023年6月13日
    0113
  • 002 Linux 文件与目录命令的必会姿势!

    文件及目录的路径切换、显示、创建、复制、移动和删除操作的常用姿势,必会!因为这些命令是使用 Linux 系统进行工作的基础,是摆脱小白的第一步,是构建大厦的基石!发现锅锅真是个话痨…

    Linux 2023年5月27日
    087
  • 4.1 打包和压缩的概念和区别

    在讲解具体的归档命令和压缩命令之前,先来了解一下归档和压缩所各自代表的含义。 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此…

    Linux 2023年6月7日
    094
  • python爬虫配置IP代理池(ProxyPool)

    关注我的公众号【靠谱杨的挨踢生活】回复 ProxyPool可以免费获取网盘链接。也可自行搜索下载:https://github.com/Python3WebSpider/Proxy…

    Linux 2023年6月14日
    0108
  • 如何使用 etcd 实现分布式 /etc 目录

    etcd 是一款兼具一致性和高可用性的键值数据库,简单、安全、快速、可信,目前是 Kubernetes 的首要数据存储。我们先来看一段 etcd 官方对于名字的解释。 The na…

    Linux 2023年6月14日
    0129
  • HTTP状态码1XX深入理解

    前段时间看了《御赐小仵作》,里面有很多细节很有心。看了一些评论都是:终于在剧里能够看到真正在搞事业、发了工资第一时间还钱的正常人了。我印象比较深的是王府才能吃上的葡萄。觉得非常合理…

    Linux 2023年6月13日
    0102
  • 三少玩Linux之FreeBSD安装与简单配置,与win7共存安装方法

    还是先安装win7, 这里就不说了; 这个是FreeBSD安装视频: https://www.bilibili.com/video/BV1vk4y1d7jt。 记得先安装windo…

    Linux 2023年6月14日
    0108
  • MySQL备份与恢复

    MySQL备份与恢复 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。 数据丢失的场景举例: 人…

    Linux 2023年6月7日
    0170
  • 如何写好倒计时

    引言 本文讲解倒计时为什么建议使用 setTimeout而不使用 setInterval,倒计时为什么存在误差,以及如何解决。 倒计时器 在前端开发中,倒计时器功能比较常见,比如活…

    Linux 2023年6月7日
    0332
  • Debian修改固定IP

    注意:此配置文件更改权限应为root权限方可修改成功 1.设置固定IP地址、网关 命令: cp /etc/network/interfaces /etc/network/inter…

    Linux 2023年6月13日
    075
  • Ajax 技术(四)

    目的: 熟练掌握AJAX基础和XMLHttpRequest对象及其方法。 重点掌握AJAX发送请求的具体过程,及过程中的不同状态。 要求: 实现用户注册表单中,使用AJAX技术根据…

    Linux 2023年6月13日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球