Rev 529 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*QBPWCF, Quick Build PHP website Component base on Fedora Linux.Copyright (C) 2015~2024 Min-Jhin,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/>.*/#使用命名空間qbpwcfnamespace qbpwcf;#匯入套件require_once("qbpwcf/allInOne.php");#建議的log位置$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";#函式說明:#呼叫shell執行系統命令,並取得回傳儲存輸出內容的檔案與pid.#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函數名稱.#$result["cmd"],執行的指令內容.#$result["fullCmd"],執行的完整指令#$result["content"],爲執行完二元碼後的輸出陣列.#$result["tmpFileOutput"],儲存輸出的暫村檔案名稱.#$result["runing"],程式是否還在執行.#$result["pid"],pid.#$result["statusCode"],執行結果狀態碼.#必填參數:#$conf["command"],字串,要執行的指令.$conf["command"]="ps auxwf | cat";#$conf["fileArgu"],字串,變數__FILE__的內容.$conf["fileArgu"]=__FILE__;#可省略參數:#$conf["doNotRun"],字串,"true"代表不執行指令,預設為"false"會執行指令.#$conf["doNotRun"]="false";#$conf["leftLogFile"],字串,預設為"false"代表要將 log 檔案移除;"true"代表要保留log檔案.#$conf["leftLogFile"]="true";#備註:#不是所有指令都能用apache的身份執行,目前已知java,javac,ping指令無法執行,透過su使用root身份可能會被selinux阻擋.#如果輸出的內容包含換行符號,將會被過濾掉.#nohup $cmd > $logFilePath 2>&1 & echo $! 會將指令的標準輸入寫入檔案 $logFilePath 並忽略錯誤輸出,將指令在背景執行,僅印出執行緒id.#$cmd > /dev/null 2>&1 &; 會將$cmd放在背景執行,且不會卡住.#參考資料:#http://php.net/manual/en/function.exec.php$callShellInBg=external::callShellInBg($conf);unset($conf);#debugvar_dump($callShellInBg);?>