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 MemCached 高级缓存应用代码
Aug 05 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
php动态变量定义及使用
Jun 10 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 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中的超全局变量
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
限制文本字节数js代码
2007/03/06 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
python字符串连接方式汇总
2014/08/21 Python
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
详解Python 函数参数的拆解
2020/09/02 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
给国外客户的邀请函
2014/01/30 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
生物技术专业求职信
2014/06/10 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
少先队工作总结2015
2015/05/13 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
亲情作文之母爱
2019/09/25 职场文书