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 相关文章推荐
PHP6 先修班 JSON实例代码
Aug 23 PHP
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
PHP 事务处理数据实现代码
May 13 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php中opendir函数用法实例
Nov 15 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
php和nginx交互实例讲解
Sep 24 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
理解JS事件循环
2016/01/07 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
详解Vue源码学习之双向绑定
2019/04/10 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python 字符串定义
2009/09/25 Python
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Django返回json数据用法示例
2016/09/18 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
C#实现启动一个进程
2016/10/01 面试题
某科技软件测试面试题
2013/05/19 面试题
新学期红领巾广播稿
2014/01/14 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
党支部承诺书
2015/01/20 职场文书