PHP Cli 模式設置進程名稱的方法

這篇文章主要介紹了PHP Cli 模式設置進程名稱的方法,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下

最近一直在優化自己的 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

<?php
setproctitle("NewProcess");
sleep(30);

此時我們命令運行腳本:

$php process.php

腳本會睡眠 30 秒。此時我們另開一個終端去查看該進程的名稱。會發現該擴展名稱已經被修改爲:"NewProcess"。

由於該擴展已經 7 年未更新。所以,不推薦使用。

二、cli_set_process_title 方法實現

從 PHP 5.5.0 開始,PHP 已經內置了 cli_set_process_title 方法來解決這個重置進程名稱的函數。我只能說,太貼心了。

使用也簡單。

process2.php

<?php
cli_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 模式設置進程名稱的方法 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章