判断一个进程是否在执行中
2023-09-11 14:14:15 时间
有些时候需要些 php 定时脚本,但是必须保证服务器中每次只有一个该进程在执行中,所以可以采用如下方法来判断上一个进程是否在执行中
/** * @Purpose : 判断该进程是否在执行中,保证每一次只有一个 test.php 进程在进行 * @Method Name : whetherPorcessIsExecuting() * @parameter : (无) * @return : (无) */ private function whetherProcessIsExecuting() { //判断该进程是否在执行中 @exec("ps aux | grep test.php",$result); // 找出与进程“test.php”有关的信息,并将结果保存在 $result 中 $sum = count($result); if($sum > 3){ // 保证每次只有一个 test.php 进程在执行 echo "上一个进程还在执行中!"; exit(); } /* var_dump($result_test); array(3) { [0]=> string(123) "root 26483 0.0 0.9 196384 9412 pts/2 S+ 16:38 0:00 php /data/myproject/auto/test.php" [1]=> string(107) "root 26484 0.0 0.1 63888 1044 pts/2 R+ 16:38 0:00 sh -c ps aux | grep test.php" [2]=> string(107) "root 26486 0.0 0.0 63888 160 pts/2 R+ 16:38 0:00 sh -c ps aux | grep test.php" }*/ }
PS AUX 查看系统所有进程数据
| 是管道命令
管道命令仅会处理 standard output , 对 standard error output 则会予以忽略
管道命令必须要能够接收来自前一个命令的数据成为 standard input 继续处理才行
grep 是选取命令
php exec($command, $output , $return_var)函数, ---------- 执行一个外部函数
commond : 执行的命令
output : 执行的输出填充此数组,每行输出填充数组的一个元素
return_var : 执行后的返回状态
本文为工作中所作的总结,原创作品,如有转载,请注明出处:http://www.cnblogs.com/chrdai/p/7085293.html
相关文章
- 知乎_线程和进程的区别是什么?
- [Socket]Socket进程间的通信
- Python多进程编程(转)
- Linux获取进程执行时间
- Linux获取进程执行时间
- Supervisor安装与配置(非守护进程管理工具)
- 重新整理操作系统概念系类——进程互斥
- python paramiko ssh.exec_command()启动tomcat服务器应用进程失败问题解决方法- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this progr
- POSIX 系统应用程序接口 errno IEEE dev_t gid_t pid_t uid_t 标准 进程创建fork execl执行 wait 等待进程终止 _exit 终止一个进程
- Python编程:managers模块分布式进程
- 【Linux 内核】实时调度类 ⑥ ( 实时调度类核心函数源码分析 | 插入进程到执行队列 | 从执行队列中选择优先级最高的进程 )
- 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 )
- Netwalker无文件勒索软件分析——使用混淆的ps脚本,本身充当DLL加载程序,将勒索软件DLL写入explorer.exe的内存空间并执行(进程注入)
- LXC linux容器简介——在操作系统层次上为进程提供的虚拟的执行环境,限制其使用的CPU和mem等资源,底层是linux内核资源管理的cgroups子系统
- linux 如何查看应用程序进程号、端口
- VS++ 管道进程获取CMD返回值
- Hbase的Hmaster进程没有启动
- 第五篇:计算机内部悄悄话,进程间通信全解析