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 相关文章推荐
smarty section简介与用法分析
Oct 03 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
php实现的Cookies操作类实例
Sep 24 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
PHP文件后缀不强制为.php方法
Mar 31 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/11/17 PHP
学习php分页代码实例
2013/10/24 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
Python中itertools模块用法详解
2014/09/25 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
对python中list的五种查找方法说明
2020/07/13 Python
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
专业技术人员年度考核评语
2014/12/31 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
python not运算符的实例用法
2021/06/30 Python