翼度科技»论坛 云主机 LINUX 查看内容

Linux部署-Net并配置进程守护

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
Linux部署-Net并配置进程守护

注册 Microsoft 签名密钥并添加 Microsoft 产品提要
  1. sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  2. sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
复制代码
安装 .NET SDK
  1. sudo yum update
  2. sudo yum install libunwind libicu
  3. sudo yum install dotnet-sdk-6.0.0  #最新版本请关注官网
复制代码
注意你自己项目的版本 我选择的项目版本是2.1.1 然后我执行的命令就是  sudo yum install dotnet-sdk-2.1 两步即可完成 .NET Core SDK 在 CentOS7 系统下的安装,最后可执行一下命令dotnet --version,如果正常输出版本号则说明安装没有出现问题。 Linux 其他发行版安装 .NET Core SDK 教程请参见官方教程 Get started with .NET in 10 minutes。 dotnet --version
部署运行

文件传输到服务器/home/wwwroot文件夹 (文件夹根据需要调整)
  1. cd    文件夹路径
  2. dotnet   项目名称     如 : dotnet WebApplication1.dll
复制代码
配置Nginx


SELinux 保护机制所导致,我们需要将 Nginx 添加至 SELinux 的白名单
  1. yum install policycoreutils-python
  2. sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
  3. sudo semodule -i mynginx.pp
复制代码
Supervisor 配置守护进程

安装
  1. sudo yum -y install epel-release
  2. sudo yum -y install supervisor
  3. supervisord -c /etc/supervisord.conf   启动supervisord并使用配置
复制代码
安装完成之后,在 /ect/supervisor/conf.d/ 目录下新建一个配置文件(touch HelloWebApp.conf),取名为 HelloWebApp.conf
conf文件示例
  1. [program:HelloWebApp]
  2. command=dotnet HelloWebApp.dll  #要执行的命令
  3. directory=/home/yxd/Workspace/publish #命令执行的目录
  4. environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
  5. user=www-data  #进程执行的用户身份
  6. stopsignal=INT
  7. autostart=true #是否自动启动
  8. autorestart=true #是否自动重启
  9. startsecs=1 #自动重启间隔
  10. stderr_logfile=/var/log/HelloWebApp.err.log #标准错误日志
  11. stdout_logfile=/var/log/HelloWebApp.out.log #标准输出日志
  12. ====================================================================================================================
  13. #配置程序名称
  14. [program:Cloud.Api]
  15. #运行程序的命令
  16. command=dotnet Cloud.Api.dll --urls="http://*:5000;http://*:5001"
  17. #命令执行的目录
  18. directory=/home/www/server-api
  19. #进程环境变量
  20. environment=ASPNETCORE_ENVIRONMENT=Production
  21. #进程执行的用户身份
  22. user=root
  23. #进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置
  24. stopsignal=INT
  25. #如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置
  26. autostart=true
  27. #这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时>
  28. 候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启
  29. autorestart=true
  30. #这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置
  31. startsecs=2
  32. #错误日志文件
  33. #stderr_logfile=/var/log/DemoNetCore.err.log
  34. #输出日志文件
  35. #stdout_logfile=/var/log/DemoNetCore.out.log
复制代码
重新加载配置或者直接重启supervisor 服务
  1. sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
  2. sudo service supervisor stop
  3. sudo service supervisor start
复制代码
https://blog.csdn.net/xyf_1995/article/details/105555835   参考博客
常用指令
  1. supervisorctl status        //查看所有进程的状态
  2. supervisorctl update        //配置文件修改后使用该命令加载新的配置
  3. supervisorctl reload        //重新启动配置中的所有程序
  4. supervisorctl restart <application name> //重启指定应用
  5. supervisorctl stop <application name> //停止指定应用
  6. supervisorctl start <application name> //启动指定应用
  7. supervisorctl restart all //重启所有应用
  8. supervisorctl stop all //停止所有应用
  9. supervisorctl start all //启动所有应用
复制代码
踩坑

supervisord -c /etc/supervisord.conf
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
  1. find / -name supervisor.sock
  2. unlink /run/supervisor/supervisor.sock
复制代码
https://www.cnblogs.com/weihengblogs/p/13724349.html   参考博客

来源:https://www.cnblogs.com/SnowCountry/p/linux-deployment-net-and-configuration-process-guardianship-zgncdw.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具