-
2020-11-20 21:20:51
定义:始终在后台运行并响应合法请求的程序称为守护进程。
守护进程运行在后台并且时刻监听前台客户的服务请求。
按照服务类型,守护进程可分为如下两类。- 系统守护进程:如dbus、crond、cups、rsyslogd等。
- 网络守护进程:如sshd、httpd、postfix、xinetd等。
更多相关内容 -
Linux以守护进程方式运行的信息服务器
2018-05-19 20:06:47以守护进程方式运行的信息服务器,含服务端与客户端 以守护进程方式运行的信息服务器,含服务端与客户端 -
node.js项目通过pm2以守护进程方式运行
2021-12-01 22:21:18我们在Linux系统上部署了一个node.js写的web项目,通过node app.js启动程序。 但是当该会话被关闭后,该node.js项目就无法被访问了,那么该如何在会话关闭后项目...这就需要用到守护进程,而pm2就是其中一种解决方式。引入
我们在Linux系统上部署了一个node.js写的web项目,通过
node app.js
启动程序。
但是当该会话被关闭后,该node.js项目就无法被访问了,那么该如何在会话关闭后项目也能一直被外界访问呢?这就需要用到守护进程,而pm2就是其中一种解决方式。
pm2
概述
pm2的官网:https://github.com/Unitech/pm2
PM2 是一个带有负载均衡功能的 Node 应用进程管理器。主要特性:
- 内建负载均衡(使用 Node cluster 集群模块)
- 后台运行
- 0 秒停机重载
- 具有 Ubuntu 和 CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)
简单来说,使用这个可以让node.js项目一直运行。
安装
通过如下命令安装pm2,但前提是已经安装了node.js环境,可以使用npm命令:
npm install pm2 -g
安装成功后需要配置下才能在系统的任意目录下使用
pm2
命令,参考:使用pm2命令报错“-bash: pm2: command not found“。在任意目录执行
pm2 --version
命令成功表示配置成功。
启动
到node.js项目下,通过如下命令进行启动,其中
app.js
文件是node.js项目的主启动文件。pm2 start app.js
更多命令
- 查看启动列表:
pm2 list
- 启动应用:
pm2 start
启动的命令如下:
# 启动app.js应用,其中app.js是node.js项目的主启动文件 pm2 start app.js # 启动app.js应用,并且设置name为"myapp" pm2 start app.js --name myapp # 启动shell脚本 pm2 start app.sh
- 停止服务:
pm2 stop
结束的命令如下:
# 停止所有应用 pm2 stop all # 根据应用名停止指定应用 pm2 stop [app_name] # 根据应用id停止指定应用 pm2 stop [id]
关于应用名字
app_name
和应用id
说明如图:
如下例:
- 删除应用
命令如下:
# 关闭并删除所有引用 pm2 delete all # 根据应用名关闭并删除指定应用 pm2 delete [app_name] # 根据应用id关闭并删除指定应用 pm2 delete [id]
-
开机自启动:
pm2 startup
-
重启应用:
pm2 restart app.js
-
查看启动列表:
pm2 list
-
查看每个应用程序占用情况:
pm2 monit
-
显示应用程序所有信息:
pm2 show [app_name | id]
-
查看日志:
pm2 logs
命令如下:
# 查看所有应用日志 pm2 logs # 根据指定应用名查看应用日志 pm2 logs [app_name] # 根据指定应用id查看应用日志 pm2 logs [id]
相关资源
-
《步步入门》.NET6在Linux下以守护进程方式运行
2021-12-02 19:23:00 在《步步入门》 .NET 6 部署到Linux 一文中只是演示了控制终端方式运行ASP.ENT,在实际的应用中,这种方式不能确保服务延续性。如果控制终端关闭,或者服务器重启,都会导致web服务不能正常访问。那要怎么解决这...
前言
在《步步入门》 .NET 6 部署到Linux 一文中只是演示了控制终端方式运行ASP.ENT,在实际的应用中,这种方式不能确保服务延续性。如果控制终端关闭,或者服务器重启,都会导致web服务不能正常访问。那要怎么解决这个问题呢?
常见的作法有两种
-
守护进程
什么是守护进程,简单讲就是不受其他进程影响以后台服务的进程,功能类似Windows服务。
守护进程我们使用Supervisor,详细参考这位博友的文章:ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
下面我们开始在Ubuntu上使用守护进程方式运行Asp.net core
安装Supervisor
sudo apt-get install supervisor
配置
cd /etc/supervisor/conf.d #进入配置目录 vim aptest.conf # 创建aptest命名的配置文件
编写配置文件
[program:apptest] #程序名称 command=dotnet apptest.dll #要执行的命令 apptest是程序名称 directory=/home/zzw/ubuntu2004 #命令执行的目录 environment=ASPNETCORE__ENVIRONMENT=Production #环境变量 user=*** #进程执行的用户身份 stopsignal=INT autostart=true #是否自动启动 autorestart=true #是否自动重启 startsecs=1 #自动重启间隔 stderr_logfile=/var/log/apptest.err.log #标准错误日志 stdout_logfile=/var/log/apptest.out.log #标准输出日志
配置完成,按Esc键,并输入:wq 保存退出配置。
重新加载配置,并重新启动 supervisorctl
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf #重新加载配置 sudo service supervisor stop #停止 sudo service supervisor start #启动
测试
访问地址 测试演示 http://182.43.158.96:8880
-
反向代理,参见微软官方文档
-
-
thinkphp内置集成workerman以守护进程方式运行
2019-08-13 09:28:13一般启动方式 php think worker:server 支持的操作包括: 操作 描述 start 启动服务(默认操作) reload 平滑重启 stop 停止服务 restart 重启服务 status 查看服务运行信息 ...一般启动方式
php think worker:server
支持的操作包括:
操作 描述 start 启动服务(默认操作) reload 平滑重启 stop 停止服务 restart 重启服务 status 查看服务运行信息 connections 查看连接信息 如停止服务
php think worker stop
守护进程启动(Linux支持)
php think worker:server -d
-
php脚本以守护进程的方式运行
2019-04-08 06:01:28写了一个聊天室,需要手动执行php start.php start命令去启动workerman的握手程序,但是退出xshell后,...所以只能写守护进程去运行 创建一个进程,setsid 命令 > /dev/null & ,比如 setsid php /www/wwwr... -
Celery教程-------------以守护进程方式运行worker
2016-06-10 17:24:25celery不能以守护进程方式运行自己,需要使用下面的工具: 通用的初始化脚本 脚本代码:extra/generic-init.d/ 这个目录包含了celery worker程序通用的初始化脚本,这些脚本应该运行在Linux,FreeBSD,OpenBSD和... -
C++编写LINUX守护进程的实现代码
2020-12-17 11:21:04守护进程一般都以root用户权限运行,因为要使用某些特殊的端口或者资源; 守护进程的父进程一般都是init进程,因为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由init接管; 2、有... -
linux下让solr以守护进程方式运行(让solr运行在后台)
2016-11-10 22:24:22操作系统:linux6.5 solr版本:4.1 ...两种方式: 第一种:# (java -Dsolr.solr.home=coreName -jar start.jar &) 第二种:# nohup java -Dsolr.solr.home=coreName -jar start.jar & 还可 -
nohup命令:以守护进程方式运行一个程序
2014-12-24 16:47:57nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断的意思( no hang up)。 该命令... -
Qt编写守护进程
2019-03-02 14:56:06本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,... -
python编写的WINDOWS进程守护小工具
2021-08-03 13:22:50python编写的WINDOWS应用守护进程(定时检查进程是否存在),检查时间可设置,进程名称可更改,直接与进程放在同一目录即可 -
Python守护进程和脚本单例运行详解
2020-12-25 14:16:27本篇文章主要介绍了Python守护进程和脚本单例运行,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 一、简介 守护进程最重要的特性是后台运行;它必须与其运行前的环境隔离开来,... -
linux 守护进程详解及建立守护进程
2020-09-15 10:02:16主要介绍了linux 守护进程详解及建立守护进程的相关资料,需要的朋友可以参考下 -
python实现将程序以守护进程的方式运行
2017-07-04 18:08:111. 前台进程:进程默认是前台运行的,会占据shell控制台,用户无法做其他操作。可以使用‘&’将前台进程转为后台进程 2. 后台进程:切为后台进程称为job,[4] 是job ID , 5094是PID, 1)jobs -l / ps 可以查看... -
用qt实现的程序守护进程程序
2020-09-07 10:08:55主要功能: 可设置检测的程序名称。 可设置udp通信端口。 可设置超时次数。 自动记录已重启次数。 自动记录最后一次重启时间。...自动隐藏的托盘运行或者后台运行。 提供界面设置程序名称已经开启和暂停服务。 -
windows守护进程小工具
2019-08-27 14:06:15检测指定的程序是否有在运行,没有运行则,运行程序。 通过config.ini配置文件配置,需要守护进程的路径,以及程序名称 -
守护进程详解
2021-01-09 04:02:16守护进程是脱离终端并在后台运行的进程。守护进程不具有控制终端,我们不会再终端上见到守护进程的输出。守护进程也不会被终端发出的信号打断。 常见的守护进程 init 系统守护进程,启动系统服务 inetd 侦听网络接口... -
redis 守护进程方式启动
2021-11-25 10:34:021.找到redis 配置文件 ( which redis.conf 或 whereis redis.conf) vim redis.conf 修改文件 将daemonize设置的值设置为yes 2复制redis配置文件到 /etc/redis 下(没有redis文件夹新建一个 mkdir redis) ... -
Android 守护进程的实现方式
2018-07-10 10:57:56能做的只是通过各种手段尽量让我们的程序在后台运行的时间长一些,或者在被干掉的时候,能够重新站起来;要做到后台进程保活,我们需要做到两方便: 1.提高进程优先级,降低被回收或杀死概率; 2.在进程被干掉后,... -
linux启动jar包的方式,直接运行与守护进程方式启动
2021-02-25 00:56:45通常我们开发好的程序需要打成war/jar包,在linux运行,war包好说直接丢在tomcat中即可,如果开发好的程序为jar包的话,着重介绍linux中jar包的启动方式 -
python实现守护进程、守护线程、守护非守护并行
2021-01-20 04:15:01注意:进程之间是互相独立的,主进程代码运行结束,守护进程随即终止 我们来看一个例子 from multiprocessing import Process import os,time,random def task(): print('%s is running' %os.getpid()) time -
详解Linux中的守护进程
2021-01-10 06:54:15守护进程也被称为精灵进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 查看方式 ps axj命令:查看系统中的进程。 参数a表示不仅列当前⽤户的进程,也列... -
使用Python编写Linux系统守护进程实例
2020-12-24 11:24:32守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行。–维基百科 守护进程区别于普通用户登陆系统后运行的进程,它是直接由系统初始化... -
C++编写的守护进程服务程序
2017-10-19 15:52:47C++编写的守护进程,守护进程以windows服务的方式运行,可通过配置文件配置需要守护的exe。 -
【守护进程】以守护进程运行Python脚本【原创】
2019-08-24 20:18:01目前在做个发布项目,需要一直运行单个Python脚本,以便于对需要发布的任务进行发布逻辑操作,并且是在Linux下运行的 目前能想到的方法有两个: Crontab定时 Systemctl守护进程 最后决定使用Systemctl守护进程来... -
.net Core 3.0 WebApi 创建Linux守护进程的方法
2020-12-20 08:06:48为了让其可以稳定运行,我们需要让它变成系统的守护进程,成为一种服务一直在系统中运行,出现异常时也能重新启动。 Linux系统有自己的守护进程管理工具 Systemd 。systemd 是内核启动后的第一个用户进程,PID 为1... -
linux守护进程源代码
2020-01-03 20:26:24linux守护进程程序模板带详细注释 守护进程日志 不能被多次运行 详细解释:https://i-beta.cnblogs.com/posts/edit;postId=12095412 -
利用C#编写Linux守护进程实例代码
2020-12-25 22:20:07Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展到多进程,父子进程文件描述...