PHP Cli 模式设置进程名称的方法


Posted in PHP onJune 12, 2019

最近一直在优化自己的 PHP 多进程管理工具。GitHub 地址: https://github.com/fingerQin/phpthread

通过命令启动之后,它在系统后台运行的名称如下:

[root@localhost logs]# ps -ef|grep "Event/register"
root      1358  1356  0 19:50 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1482  1358  0 19:55 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1483  1358  0 19:55 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1484  1358  0 19:55 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1486  1358  0 19:55 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1487  1358  0 19:55 ?        00:00:00 /usr/local/php72/bin/php cli.php Event/register
root      1499  1240  0 19:56 pts/1    00:00:00 grep --color=auto Event/register

大家可以看到。它会把我们执行 PHP 脚本的整个命令路径全部显示出来。没办法伪装成一个特殊的名称,或者说优雅的名称。

查阅相关资料。其实 PHP 早已经支持这种操作。

一、proctitle 扩展实现

在 PHP 5.5.0 版本之前,只能通过 proctitle 扩展实现。下载地址: http://pecl.php.net/package/proctitle

关于安装这种 PHP C 扩展。这里就不展示说明。关于 PHP C 扩展的教程很多。

proctitle 扩展安装好之后。通过该扩展提供的 setproctitle 方法实现自定义进程名称。

process.php

<?php
setproctitle("NewProcess");
sleep(30);

此时我们命令运行脚本:

$php process.php

脚本会睡眠 30 秒。此时我们另开一个终端去查看该进程的名称。会发现该扩展名称已经被修改为:"NewProcess"。

由于该扩展已经 7 年未更新。所以,不推荐使用。

二、cli_set_process_title 方法实现

从 PHP 5.5.0 开始,PHP 已经内置了 cli_set_process_title 方法来解决这个重置进程名称的函数。我只能说,太贴心了。

使用也简单。

process2.php

<?php
cli_set_process_title("NewProcess");
sleep(30);

执行该脚本之后,咱们依然别启一个命令终端查看:

[root@localhost public]# ps -ef|grep NewProcess
root     10489  1240  0 09:49 pts/1    00:00:00 NewProcess
root     10496  1221  0 09:50 pts/0    00:00:00 grep --color=auto NewProcess

我们可以看到。已经生效了。

它就是如此简单。以后我们可以将该进程名称优雅化。也可以以此来伪装隐藏自己。总之,你可以用这个神奇的名字干你想干的事情。

总结

以上所述是小编给大家介绍的PHP Cli 模式设置进程名称的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
php email邮箱正则
Oct 08 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
PHP 全角转半角实现代码
May 16 PHP
php中大括号作用介绍
Mar 22 PHP
解析php开发中的中文编码问题
Aug 08 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
linux下实现定时执行php脚本
Feb 13 PHP
php使用正则验证中文
Apr 06 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
PHP变量的作用范围实例讲解
Dec 22 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 #PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 #PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 #PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 #PHP
PHP面向对象类型约束用法分析
Jun 12 #PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 #PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 #PHP
You might like
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python 实现自动导入缺失的库
2019/10/29 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
如何使用python写截屏小工具
2020/09/29 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
介绍一下linux的文件系统
2012/03/20 面试题
幼儿园数学教学反思
2014/02/02 职场文书
安全标准化汇报材料
2014/02/03 职场文书
函授生自我鉴定
2014/03/25 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技