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 相关文章推荐
数据库相关问题
Oct 09 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
浅谈php和.net的区别
Sep 28 PHP
php的curl封装类用法实例
Nov 07 PHP
PHP中if和or运行效率对比
Dec 12 PHP
PHP开发注意事项总结
Feb 04 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
php创建无限级树型菜单
Nov 05 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
laravel 事件/监听器实例代码
Apr 12 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
用libtemplate实现静态网页生成
2006/10/09 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
python人民币小写转大写辅助工具
2018/06/20 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
使用K.function()调试keras操作
2020/06/17 Python
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
团员学习总结的自我评价范文
2013/10/14 职场文书
英文版餐饮业求职信
2013/10/18 职场文书
小学教师自我鉴定
2013/11/07 职场文书
男方父母证婚词
2014/01/12 职场文书
就业自我评价
2014/02/04 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
创业计划书之书店
2019/09/10 职场文书
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android