Rev 223 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*QBPWCF, Quick Build PHP website Component base on Fedora Linux.Copyright (C) 2014~2026 MIN ZHI, CHENThis file is part of QBPWCF.QBPWCF is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.QBPWCF is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with QBPWCF. If not, see <http://www.gnu.org/licenses/>.*//*說明:請先於 sample 資料夾運行 sock::unixDomainSockServer.php 20250228 再運行 threads::socket.php 20250228*/#使用命名空間qbpwcfnamespace qbpwcf;#assets dir$assetsDir="assets of threads::socket_20250228";#函式說明:#透過 unix socket 來多執行序運作.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$reuslt["error"],執行不正常結束的錯訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],使用的參數.#$result["content"],陣列,每個元素為cmds參數中個別元素其指令執行後得到的輸出.#必填參數:#$conf["cmds"],字串陣列,每個元素代表要執行的指令與參數.$conf["cmds"]=array("ps auxwf '|' cat");#可省略參數:#可省略參數:#$conf["sock"],字串,要連線的 usr/bin/qbpwcf-sock.php 所產生的 unix domain socket 路徑與名稱,預設為 qbpwcf_usock_path.$conf["sock"]=$assetsDir."/unixDomainSockServer.sock";#參考資料:#無#備註:#需要透過sock::unixDomainSockServer來運行.$socket=threads::socket($conf);unset($conf);#debugif($socket["status"]==="false"){#debugvar_dump($socket);#結束執行回傳 1 給 shellexit(1);}#if end#如果沒有要的結果if(!isset($socket["content"])){#debugvar_dump($socket);#結束執行回傳 1 給 shellexit(1);}#if end#如果執行指令失敗if($socket["content"][0]["status"]==="false"){#debugvar_dump($socket);#結束執行回傳 1 給 shellexit(1);}#if end#取得程序的 uuid$procUuid=$socket["content"][0]["content"];#無窮迴圈while(true){#函式說明:#詢問透過 sock::unixDomainSockServer 執行的程序狀況#回傳結果:#$result["status"],"true"代表執行正常;"false"代表執行不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函式名稱.#$result["argu"],使用的參數.#$result["content"],陣列,程序的資訊.#$result["content"]["pid"],字串,程序的pid.#$result["content"]["running"],字串,是否正常執行中.#$result["content"]["statusCode"],字串,回傳給 shell 的代碼.#$result["content"]["input"],字串,輸入的內容.#$result["content"]["output"],字串,標準輸出的內容.#$result["content"]["error"],字串,錯誤輸出的內容.#必填參數:#$conf["uuid"],字串,proc的uuid.$conf["uuid"]=$procUuid;#可省略參數:#$conf["sock"],字串,要連線的 usr/bin/qbpwcf-sock.php(sock::unixDomainSockServer) 所產生的 unix domain socket 路徑與名稱,預設為 qbpwcf_usock_path.$conf["sock"]=$assetsDir."/unixDomainSockServer.sock";#參考資料:#無.#備註:#無.$getProcInfo=sock::getProcInfo($conf);unset($conf);#debugif($getProcInfo["status"]==="false"){#debugvar_dump($getProcInfo);#結束執行回傳 1 給 shellexit(1);}#if end#如果已經停止運行if($getProcInfo["content"]["running"]==="false"){#debugvar_dump($getProcInfo);#結束執行break;}#if end#休息1秒sleep(1);}#whlie end