最近一直在優(yōu)化自己的 PHP 多進程管理工具。GitHub 地址: https://github.com/fingerQin/phpthread
通過命令啟動之后,它在系統(tǒng)后臺運行的名稱如下:
[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
大家可以看到。它會把我們執(zhí)行 PHP 腳本的整個命令路徑全部顯示出來。沒辦法偽裝成一個特殊的名稱,或者說優(yōu)雅的名稱。
查閱相關(guān)資料。其實 PHP 早已經(jīng)支持這種操作。
一、proctitle 擴展實現(xiàn)
在 PHP 5.5.0 版本之前,只能通過 proctitle 擴展實現(xiàn)。下載地址: http://pecl.php.net/package/proctitle
關(guān)于安裝這種 PHP C 擴展。這里就不展示說明。關(guān)于 PHP C 擴展的教程很多。
proctitle 擴展安裝好之后。通過該擴展提供的 setproctitle 方法實現(xiàn)自定義進程名稱。
process.php
?php
setproctitle("NewProcess");
sleep(30);
此時我們命令運行腳本:
$php process.php
腳本會睡眠 30 秒。此時我們另開一個終端去查看該進程的名稱。會發(fā)現(xiàn)該擴展名稱已經(jīng)被修改為:"NewProcess"。
由于該擴展已經(jīng) 7 年未更新。所以,不推薦使用。
二、cli_set_process_title 方法實現(xiàn)
從 PHP 5.5.0 開始,PHP 已經(jīng)內(nèi)置了 cli_set_process_title 方法來解決這個重置進程名稱的函數(shù)。我只能說,太貼心了。
使用也簡單。
process2.php
?php
cli_set_process_title("NewProcess");
sleep(30);
執(zhí)行該腳本之后,咱們依然別啟一個命令終端查看:
[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
我們可以看到。已經(jīng)生效了。
它就是如此簡單。以后我們可以將該進程名稱優(yōu)雅化。也可以以此來偽裝隱藏自己??傊?,你可以用這個神奇的名字干你想干的事情。
總結(jié)
以上所述是小編給大家介紹的PHP Cli 模式設(shè)置進程名稱的方法 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
您可能感興趣的文章:- PHP CLI模式下的多進程應(yīng)用分析
- 使用php+swoole對client數(shù)據(jù)實時更新(一)
- php命令行(cli)模式下報require 加載路徑錯誤的解決方法
- 標(biāo)準(zhǔn)版Eclipse搭建PHP環(huán)境的詳細步驟
- php cli配置文件問題分析
- ThinkPHP在Cli模式下使用模板引擎的方法
- PHP封裝的HttpClient類用法實例
- php命令行(cli)下執(zhí)行PHP腳本文件的相對路徑的問題解決方法