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 相关文章推荐
mysql+php分页类(已测)
Mar 31 PHP
php minixml详解
Jul 19 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
PHP代码优化技巧小结
Sep 29 PHP
thinkPHP下的widget扩展用法实例分析
Dec 26 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP时间相关常用函数用法示例
Jun 03 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图片上传代码
2013/11/04 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
PHP输出日历表代码实例
2015/03/27 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
使用js检测浏览器的实现代码
2013/05/14 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
Vue中props的使用详解
2018/06/15 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
python使用多进程的实例详解
2018/09/19 Python
解决python "No module named pip" 的问题
2018/10/13 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python轮询机制控制led实例
2020/05/03 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
小学毕业家长寄语
2014/01/19 职场文书
早会主持词
2014/03/17 职场文书
公司经理聘任书
2014/03/29 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
员工旷工检讨书
2015/08/15 职场文书