最近一直在優化自己的 php 多程序管理工具。github 位址:
通過命令啟動之後,它在系統後台執行的名稱如下:
[root@localhost logs]# ps -ef|grep "event/register"
root &nblwxiursp; 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 擴充套件實現。**位址:
關於安裝這種 php c 擴充套件。這裡就不展示說明。關於 php c 擴充套件的教程很多。
proctitle 擴充套件安裝好之後。通過該擴充套件提供的 setproctitle 方法實現自定義程序名稱。
process.php
<?php setproctitle("newprocess");
sleep(30);
此時我們命令執行指令碼:
$php proc程式設計客棧ess.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 newplwxiurrocess
root 10496 1221 0 09:50 pts/0 & 00:00:00 grep --color=auto newprocess
我們可以看到。已經生效了。
它就是如此簡單。以後我們可以將該程序名稱優雅化。也可以以此來偽裝隱藏自己。總之,你可以用這個神奇的名字**想幹的事情。
總結本文標題: php cli 模式設定程序名稱的方法
本文位址:
php cli模式下獲取程序ID和設定程序名稱
建立檔案ci.php 內容如下 得到當前程序id 函式 posix getpid echo 當前pid posix getpid while true 開啟乙個ssh視窗進行測試 root bj 39 tmp php cl.php 當前 8274開啟乙個新的ssh視窗檢視程序名稱 root bj 3...
PHP CLI模式下的多程序應用
而且,如果輸入資料非法,而指令碼沒有檢測,導致abort,也會讓你很不開心.那?怎麼辦呢?多程序 為什麼呢?優點 1.使用多程序,子程序結束以後,核心會負責 資源 2.使用多程序,子程序異常退出不會導致整個程序thread退出.父程序還有機會重建流程.3.乙個常駐主程序,只負責任務分發,邏輯更清楚....
PHP CLI模式下的多程序應用
而且,如果輸入資料非法,而指令碼沒有檢測,導致abort,也會讓你很不開心.那?怎麼辦呢?多程序 為什麼呢?優點 1.使用多程序,子程序結束以後,核心會負責 資源 2.使用多程序,子程序異常退出不會導致整個程序thread退出.父程序還有機會重建流程.3.乙個常駐主程序,只負責任務分發,邏輯更清楚....