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
同样的,获取当提高程名的函数也非常地大略,直接调用即可。它就会正常输出当前实行脚本的进程名称。
如果我们没有自定义进程名称呢?这里就不会有任何的输出,大家可以自己考试测验一下。
把稳事变
末了来说说这两个函数的把稳事变。
一是如果利用的是 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