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截取中文字符串的问题
Jul 12 PHP
网络资源
Oct 09 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
PHP 函数语法介绍一
Jun 14 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
PHP原生函数一定好吗?
Dec 08 PHP
php实现删除空目录的方法
Mar 16 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
基于swoole实现多人聊天室
Jun 14 PHP
YII框架http缓存操作示例
Apr 29 PHP
Laravel框架创建路由的方法详解
Sep 04 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
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
实例详解Python模块decimal
2019/06/26 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
2013英文求职信模板范文
2013/11/15 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android