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