欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-28 16:51:39
最近一直在优化自己的 php 多进程管理工具。github 地址: https://github.com/fingerqin/phpthread 通过命令启动之...

最近一直在优化自己的 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 扩展实现。下载地址: 

关于安装这种 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 模式设置进程名称的方法 ,希望对大家有所帮助