一看就懂系列之 如何实现与控制php常驻进程

前言

关于如何实现与控制php常驻进程,不管是google还是baidu上进行搜索,都没有感觉看起来赏心悦目的解答,于是决定自己动手总结下。

有同学会问了,整这个干甚?简单的说就是,可以让一个php脚本一直处于运行的状态。从而实现将项目中某些耗时操作异步化,进队列后由php脚本取出再执行。

有同学又会问了,直接在服务器直接命令“php test.php &”,不就可以实现了?那么这样做的话有三点还需要考虑:1.如何保证此进程的稳定性(挂了怎么办)2.如果想开10个进程,手动去执行10回好像不怎么友好。3.关闭的话需要手动杀死进程?

有同学又会问了,这个不是在crontab加一个定时任务从而一直去执行不就好了,而且保证了稳定性。准确地说这也是可以的,但是有三点需要考虑:1.每回新增队列都要加一回crontab真的好吗。2.还是开10的进程问题(同上)。3.那要是关闭的话还要去备注crontab任务?

所以本文所设计的方案主要解决以下几个问题:
1.如果实现php的常驻?(不依赖第三方php扩展)
2.如何保证进程的稳定性(谁来守护的问题)?
3.如何方便的管理php进程的关闭与重启?
4.如何方便的管理php进程的并发数?
5.如何进行对php进程的监控?

正文

demo文件描述

这里写图片描述

cron_demo
1.cron_watchdog.sh:用于添加以及调起php进程
2.cron_watchdogd.sh:用于监控cron_watchdog.sh,保证其一直在运行
3.cron_zombie_alert.sh:用于进程文件的扫描监控,与错误通知。


privdata/cron_demo
cron_count.ini:用于控制php进程的并发数
cron_switch.ini:用于控制php进程的开关
cron_status/ :用于存在标记php进程的pid,以供cron_zombie_alert.sh扫描
cron_kill.log:用于记录cron_zombie_alert.sh扫描到并且kill的僵尸进程。


由于是一看就懂系列,故具体文件解析会附带上详细的解读。

cron_watchdog.sh的实现与解读

代码实现
#!/bin/bash
#该脚本需在bash版本>=4中执行
#输出当前地址
CRON_DIR=$(cd $(dirname 
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在Linux中,常驻进程(也称为守护进程)是指在后台运行并保持运行的进程常驻进程通常用于维护系统的稳定性和可用性,例如网络服务、系统监控等。常驻进程在系统启动时启动,并在系统关闭时终止。 常驻进程可以通过多种方式实现,其中一种常见的方式是使用init.d脚本。init.d脚本是一种用于管理系统服务的脚本,可以在系统启动时自动启动常驻进程,并在系统关闭时自动终止。通过init.d脚本,可以方便地管理常驻进程的启动、停止和重启。 要查看当前系统中的进程信息,可以使用ps命令。ps命令的常用选项包括: - ps -a:显示当前终端的所有进程信息 - ps -u:以用户的格式显示进程信息 - ps -x:显示后台进程运行的参数 例如,使用ps -aux命令可以显示当前系统中所有进程的详细信息,包括进程号、CPU占用率、内存占用率等。\[2\] 要查看特定进程的详细信息,可以使用ps -ef命令结合grep命令进行过滤。例如,使用ps -ef | grep sshd命令可以查看所有与sshd相关的进程信息。\[3\] 如果需要终止进程,可以使用kill命令。kill命令可以向指定的进程发送信号,以请求其终止。可以使用进程号或进程名来指定要终止的进程。另外,killall命令可以终止所有具有指定名称的进程。 总结起来,Linux中的常驻进程是在后台运行并保持运行的进程,可以通过init.d脚本启动和管理。可以使用ps命令查看进程信息,使用kill命令终止进程。 #### 引用[.reference_title] - *1* [【Linux 系统】关于守护进程](https://blog.csdn.net/liuhuoxingkong/article/details/114207231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Linux 进程管理(重点)](https://blog.csdn.net/sxycylq/article/details/128719670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值