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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php session 写入数据库
2016/02/13 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
用Django写天气预报查询网站
2018/10/21 Python
Django Rest framework频率原理与限制
2019/07/26 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
pandas针对excel处理的实现
2021/01/15 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
入党自我鉴定范文
2013/10/04 职场文书
优质的学校老师推荐信
2013/10/28 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
村委会贫困证明范文
2014/09/21 职场文书
党员检讨书
2014/10/13 职场文书
行政司机岗位职责
2015/04/10 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书