PHP Cli 模式设置进程名称的方法

 更新时间:2019年06月12日 11:01:35   作者:php 解说  
这篇文章主要介绍了PHP Cli 模式设置进程名称的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

最近一直在优化自己的 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 模式设置进程名称的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • MixPHP、Yii和CodeIgniter的并发压力测试小结

    MixPHP、Yii和CodeIgniter的并发压力测试小结

    这篇文章主要给大家介绍了关于MixPHP、Yii和CodeIgniter的并发压力测试的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • PHP register_shutdown_function函数的深入解析

    PHP register_shutdown_function函数的深入解析

    本篇文章是对PHP register_shutdown_function函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Laravel框架学习笔记之批量更新数据功能

    Laravel框架学习笔记之批量更新数据功能

    这篇文章主要介绍了Laravel框架学习笔记之批量更新数据功能,结合实例形式分析了Laravel框架批量更新数据的相关模型定义与使用操作技巧,需要的朋友可以参考下
    2019-05-05
  • php数组去重复数据示例

    php数组去重复数据示例

    这篇文章主要介绍了php数组去重复数据示例,有时候获得的php数组中总是出现value重复的,使用下面的方法就可以去掉重复数据
    2014-02-02
  • PHP实现腾讯与百度坐标转换

    PHP实现腾讯与百度坐标转换

    下面小编就为大家带来一篇PHP实现腾讯与百度坐标转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • php采集神器cURL使用方法详解

    php采集神器cURL使用方法详解

    这篇文章主要为大家详细介绍了php采集神器cURL使用方法,file_get_contents函数获取远程链接的数据更具有优势,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • php数组转换js数组操作及json_encode的用法详解

    php数组转换js数组操作及json_encode的用法详解

    php数组转换js数组操作及json_encode的用法。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • 33道php常见面试题及答案

    33道php常见面试题及答案

    这篇文章主要介绍了33道php常见面试题及答案,都是平时面试的时候经常会遇到的,小伙伴们仔细了解下吧。
    2015-07-07
  • thinkPHP5框架实现基于ajax的分页功能示例

    thinkPHP5框架实现基于ajax的分页功能示例

    这篇文章主要介绍了thinkPHP5框架实现基于ajax的分页功能,结合实例形式分析了thinkPHP5框架上进行ajax分页操作的具体步骤、实现代码与相关操作方法,需要的朋友可以参考下
    2018-06-06
  • laravel5创建service provider和facade的方法详解

    laravel5创建service provider和facade的方法详解

    这篇文章主要介绍了laravel5创建service provider和facade的方法,实例分析了laravel创建service、provider和facade类的具体步骤与实现技巧,需要的朋友可以参考下
    2016-07-07

最新评论