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 相关文章推荐
用函数读出数据表内容放入二维数组
Oct 09 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php中的三元运算符使用说明
Jul 03 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
php内存缓存实现方法
Jan 24 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
iOS10推送通知开发教程
Sep 19 PHP
php创建图像具体步骤
Mar 13 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python输入多行字符串的方法总结
2019/07/02 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
学生安全教育材料
2014/02/14 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
新兵入伍心得体会
2014/09/04 职场文书
还款承诺书范本
2015/01/20 职场文书
会计求职信怎么写
2015/03/20 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL