时间:2021-05-26
最近一直在优化自己的 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
<?phpsetproctitle("NewProcess");sleep(30);此时我们命令运行脚本:
$php process.php
脚本会睡眠 30 秒。此时我们另开一个终端去查看该进程的名称。会发现该扩展名称已经被修改为:"NewProcess"。
由于该扩展已经 7 年未更新。所以,不推荐使用。
二、cli_set_process_title 方法实现
从 PHP 5.5.0 开始,PHP 已经内置了cli_set_process_title 方法来解决这个重置进程名称的函数。我只能说,太贴心了。
使用也简单。
process2.php
<?phpcli_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 模式设置进程名称的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
php-fpm的两种进程管理模式php-fpm的进程数也是可以根据设置分为动态和静态的。一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是
php全集行模式,即php-cli,官方文档中称为:CLISAPI(ServerApplicationProgrammingInterface,服务端应用编程端
PHP在cli模式下接收参数有两种方法1.使用argv数组2.使用getopt方法1.使用argv数组例如:需要执行一个php,并传递三个参数(type=new
本文实例讲述了ThinkPHP在Cli模式下使用模板引擎的方法。分享给大家供大家参考。具体如下:关于Cli模式与模版引擎,2.1中的手册是这样说明的:Cli模式
本文实例讲述了php多进程并发编程防止出现僵尸进程的方法。分享给大家供大家参考,具体如下:对于用PHP进行多进程并发编程,不可避免要遇到僵尸进程的问题。僵尸进程