在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。守护进程(daemon)是...
在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。
守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程。它独立于控制终端,周期性地执行某种任务。Linux的大多数服务器就是用守护进程的方式实现的。如web服务器进程http等。守护进程在后台运行,类似于Windows中的系统服务。
实现守护进程的软件有很多, 这次简单讲解Supervisor的使用
1. 安装
yum install supervisor
2. 编辑配置文件 在 /etc/supervisord.d 创建 xxx.ini 文件, 注意输出日志文件需要先创建一个,否则可能启动不了
#配置程序名称 [program:xxxx] #运行程序的命令 command=dotnet xxxx.dll --urls="http://*:8010;" #命令执行的目录 directory=/usr/dotnetcore/xxxx #进程环境变量 environment=ASPNETCORE_ENVIRONMENT=Production #进程执行的用户身份 user=root #进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置 stopsignal=INT #如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置 autostart=true #这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启 autorestart=true #这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置 startsecs=1 #错误日志文件 stderr_logfile=/var/log/xxxx/xxxx.err.log #输出日志文件 stdout_logfile=/var/log/xxxx/xxxx.out.log
3. 启动守护进程
systemctl start supervisord
4. 检查一下结果
ps -aux | grep "xxxx.dll"
5. 将守护进程添加到开机自启
systemctl enable supervisord
这样下一次就会开启自启
本文标题为:linux centos 8 为.net core 添加进程守护 Supervisor
基础教程推荐
- C# 调用WebService的方法 2023-03-09
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- 一个读写csv文件的C#类 2022-11-06
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- unity实现动态排行榜 2023-04-27
- C# List实现行转列的通用方案 2022-11-02
- ZooKeeper的安装及部署教程 2023-01-22
- winform把Office转成PDF文件 2023-06-14
- C#类和结构详解 2023-05-30