ps-ef|greptest#root3217231511009:03pts/000:00:00testtop-p32172-c#32198root2001131001805213088S0.00.20:00.00test

可以看到,不管是利用 ps 还是利用 top ,都可以看到相应的进程名称为 test 的进程。
这样,就完成了进程名称的自定义。

获取进程名

echo"Processtitle:".cli_get_process_title()."\n";//Processtitle:test

同样的,获取当提高程名的函数也非常地大略,直接调用即可。
它就会正常输出当前实行脚本的进程名称。

如果我们没有自定义进程名称呢?这里就不会有任何的输出,大家可以自己考试测验一下。

php设置脚本PHP剧本设置及获取过程名 HTML

把稳事变

末了来说说这两个函数的把稳事变。

一是如果利用的是 Mac OS 系统,会提示:

//Warning:cli_set_process_title():cli_set_process_titlehadanerror:Notinitializedcorrectly

也便是说这两个函数在 Mac 下面是无法正常利用的,我的测试环境是 CentOS ,是可以正常利用的。
Windows 环境没有进行测试,正常情形下也很少会有人在 Windows 环境下挂后台实行脚本,以是有兴趣的同学可以自己测试下。

二是进程名可以是中文!


是不是觉得很高大上。

三是这两个函数仅针对 CLI 运行环境。
也便是说,在 CGI 正常网页运行的状态下这两个函数是没有效果的。

测试代码

https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/PHP%E8%84%9A%E6%9C%AC%E8%AE%BE%E7%BD%AE%E5%8F%8A%E8%8E%B7%E5%8F%96%E8%BF%9B%E7%A8%8B%E5%90%8D.php

参考文档:

https://www.php.net/manual/zh/function.cli-set-process-title.php

https://www.php.net/manual/zh/function.cli-get-process-title.php