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程序中的常见漏洞进行攻击(下)
Oct 09 PHP
php仿discuz分页效果代码
Oct 02 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
基于laravel where的高级使用方法
Oct 10 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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判断变量的函数
2012/04/24 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
ppk谈JavaScript style属性
2008/10/10 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
es6数值的扩展方法
2019/03/11 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
Python 文件管理实例详解
2015/11/10 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
房地产开发计划书
2014/01/10 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
公务员诚信承诺书
2014/05/26 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs