PHP Cli 模式設定程序名稱的方法

2022-09-26 05:18:11 字數 1958 閱讀 9569

最近一直在優化自己的 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.乙個常駐主程序,只負責任務分發,邏輯更清楚....