| Line 25951... |
Line 25951... |
| 25951 |
#可省略參數:
|
25951 |
#可省略參數:
|
| 25952 |
#$conf["username"],字串,要用什麼使用者來執行,預設為root使用者
|
25952 |
#$conf["username"],字串,要用什麼使用者來執行,預設為root使用者
|
| 25953 |
#$conf["username"]="";
|
25953 |
#$conf["username"]="";
|
| 25954 |
#$conf["password"],字串,使用者的密碼,預設不使用.
|
25954 |
#$conf["password"],字串,使用者的密碼,預設不使用.
|
| 25955 |
#$conf["password"]="";
|
25955 |
#$conf["password"]="";
|
| 25956 |
#$conf["checkListen"],陣列,用來判斷服務是否有正確啟動的條件,一個元素代表,其中要有一個socket info符合之,若元素的key為"ip",則其數值為[ipv4/ipv6]:port/protocol(tcp/udp);若元素的key為"addr",則其數值為unix domain socket 的位置與名稱;若元素的key為"name",則其數值為程序名稱.
|
25956 |
#$conf["checkListen"],陣列,用來判斷服務是否有正確啟動的條件,一個元素代表,其中要有一個socket info符合之,若元素的key為"ip",則其數值為[ipv4/ipv6]:port/protocol(tcp/udp);若元素的key為"addr",則其數值為unix domain socket 的位置與名稱;若元素的key為"name",則其數值為程序名稱;若元素的key為"cmd",則其數值為一陣列,該陣列的key有cmd,其value為要執行的指令,另外一個key為timeout,其value為秒數,預設為10秒,代表指令於10秒內結束為正常,反之為異常.
|
| 25957 |
#$conf["checkListen"]=array(array("ip"=>169.254.1.1:443/tcp,"addr"=>/usr/lib/qbpwcf/qbpwcf-usock.sock,"name"=>"addr"),"name"=>"httpd");
|
25957 |
#$conf["checkListen"]=array(array("ip"=>169.254.1.1:443/tcp,"addr"=>/usr/lib/qbpwcf/qbpwcf-usock.sock,"name"=>"addr"),"name"=>"httpd",array("cmd"=>"ps auxwf | cat","timeout"=>"10"));
|
| 25958 |
#$conf["interval"],字串,檢查沒問題後,要多少秒後再檢查一次,預設為30秒,亦即"30".
|
25958 |
#$conf["interval"],字串,檢查沒問題後,要多少秒後再檢查一次,預設為30秒,亦即"30".
|
| 25959 |
#$conf["interval"]="30";
|
25959 |
#$conf["interval"]="30";
|
| 25960 |
#$conf["reportOnly"],字串,"true"代表不「啟動/重新啟動」服務,只是輸出訊息表示服務有正常或需要處理;預設為"false"代表直接「啟動/重新啟動」.
|
25960 |
#$conf["reportOnly"],字串,"true"代表不「啟動/重新啟動」服務,只是輸出訊息表示服務有正常或需要處理;預設為"false"代表直接「啟動/重新啟動」.
|
| 25961 |
#$conf["reportOnly"]="true";
|
25961 |
#$conf["reportOnly"]="true";
|
| 25962 |
#$conf["verbose"],字串,預設為"false",若為"true"則會印出過程訊息.
|
25962 |
#$conf["verbose"],字串,預設為"false",若為"true"則會印出過程訊息.
|
| Line 26289... |
Line 26289... |
| 26289 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
26289 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
| 26290 |
#$conf["canNotBeEmpty"]=array();
|
26290 |
#$conf["canNotBeEmpty"]=array();
|
| 26291 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
26291 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
| 26292 |
#$conf["canBeEmpty"]=array();
|
26292 |
#$conf["canBeEmpty"]=array();
|
| 26293 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
26293 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
| 26294 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("ip","addr","name");
|
26294 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("ip","addr","name","cmd");
|
| 26295 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
26295 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
| 26296 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("ip","addr","name");
|
26296 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("ip","addr","name","cmd");
|
| 26297 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
26297 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
| 26298 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string");
|
26298 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","array");
|
| 26299 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
26299 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
| 26300 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null);
|
26300 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null);
|
| 26301 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
26301 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
| 26302 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";
|
26302 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";
|
| 26303 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
26303 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
| 26304 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";
|
26304 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";
|
| 26305 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
26305 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
| Line 27136... |
Line 27136... |
| 27136 |
|
27136 |
|
| 27137 |
#如果只要 Report
|
27137 |
#如果只要 Report
|
| 27138 |
if($conf["reportOnly"]==="true"){
|
27138 |
if($conf["reportOnly"]==="true"){
|
| 27139 |
|
27139 |
|
| 27140 |
#輸出
|
27140 |
#輸出
|
| 27141 |
echo "service ".$conf["name"]." need to restart!".PHP_EOL;;
|
27141 |
echo "service ".$conf["name"]." need to restart!".PHP_EOL;
|
| 27142 |
|
27142 |
|
| 27143 |
#下一輪
|
27143 |
#下一輪
|
| 27144 |
continue;
|
27144 |
continue;
|
| 27145 |
|
27145 |
|
| 27146 |
}#if end
|
27146 |
}#if end
|
| Line 27190... |
Line 27190... |
| 27190 |
|
27190 |
|
| 27191 |
}#if end
|
27191 |
}#if end
|
| 27192 |
|
27192 |
|
| 27193 |
}#if end
|
27193 |
}#if end
|
| 27194 |
|
27194 |
|
| - |
|
27195 |
#如果有指定 cmd
|
| - |
|
27196 |
if(isset($checkListen["cmd"])){
|
| - |
|
27197 |
|
| - |
|
27198 |
#檢查參數
|
| - |
|
27199 |
#函式說明:
|
| - |
|
27200 |
#檢查必填與可省略參數,可省略參數可指定預設要給與什麼數值內容。
|
| - |
|
27201 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27202 |
#$reuslt["error"],執行不正常結束的錯訊息陣列.
|
| - |
|
27203 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27204 |
#$result["argu"],設置給予的參數.
|
| - |
|
27205 |
#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
|
| - |
|
27206 |
#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
|
| - |
|
27207 |
#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
|
| - |
|
27208 |
#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
|
| - |
|
27209 |
#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
|
| - |
|
27210 |
#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
|
| - |
|
27211 |
#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
|
| - |
|
27212 |
#$result["notNeedVar"],字串陣列,多餘的參數名稱.
|
| - |
|
27213 |
#必填寫的參數:
|
| - |
|
27214 |
#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
|
| - |
|
27215 |
$conf["variableCheck::checkArguments"]["varInput"]=&$checkListen["cmd"];
|
| - |
|
27216 |
#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
|
| - |
|
27217 |
$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
|
| - |
|
27218 |
#可以省略的參數:
|
| - |
|
27219 |
#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
|
| - |
|
27220 |
$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("cmd");
|
| - |
|
27221 |
#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
|
| - |
|
27222 |
$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
|
| - |
|
27223 |
#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
|
| - |
|
27224 |
#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
|
| - |
|
27225 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
| - |
|
27226 |
#$conf["canNotBeEmpty"]=array();
|
| - |
|
27227 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
| - |
|
27228 |
#$conf["canBeEmpty"]=array();
|
| - |
|
27229 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
| - |
|
27230 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("timeout");
|
| - |
|
27231 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
| - |
|
27232 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("timeout");
|
| - |
|
27233 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
| - |
|
27234 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
|
| - |
|
27235 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
| - |
|
27236 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("10");
|
| - |
|
27237 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
| - |
|
27238 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmpty"]="false";
|
| - |
|
27239 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
| - |
|
27240 |
$conf["variableCheck::checkArguments"]["disallowAllSkipableVarIsEmptyArray"]="false";
|
| - |
|
27241 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
| - |
|
27242 |
#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array();
|
| - |
|
27243 |
#參考資料來源:
|
| - |
|
27244 |
#array_keys=>http://php.net/manual/en/function.array-keys.php
|
| - |
|
27245 |
$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
|
| - |
|
27246 |
unset($conf["variableCheck::checkArguments"]);
|
| - |
|
27247 |
|
| - |
|
27248 |
#如果檢查參數失敗
|
| - |
|
27249 |
if($checkArguments["status"]==="false"){
|
| - |
|
27250 |
|
| - |
|
27251 |
#設置執行失敗
|
| - |
|
27252 |
$result["status"]="false";
|
| - |
|
27253 |
|
| - |
|
27254 |
#設置錯誤訊息
|
| - |
|
27255 |
$result["error"]=$checkArguments;
|
| - |
|
27256 |
|
| - |
|
27257 |
#回傳結果
|
| - |
|
27258 |
return $result;
|
| - |
|
27259 |
|
| - |
|
27260 |
}#if end
|
| - |
|
27261 |
|
| - |
|
27262 |
#如果檢查參數失敗
|
| - |
|
27263 |
if($checkArguments["passed"]==="false"){
|
| - |
|
27264 |
|
| - |
|
27265 |
#設置執行失敗
|
| - |
|
27266 |
$result["status"]="false";
|
| - |
|
27267 |
|
| - |
|
27268 |
#設置錯誤訊息
|
| - |
|
27269 |
$result["error"]=$checkArguments;
|
| - |
|
27270 |
|
| - |
|
27271 |
#回傳結果
|
| - |
|
27272 |
return $result;
|
| - |
|
27273 |
|
| - |
|
27274 |
}#if end
|
| - |
|
27275 |
|
| - |
|
27276 |
#預設檢查不通過
|
| - |
|
27277 |
$pass="false";
|
| - |
|
27278 |
|
| - |
|
27279 |
#透過 proc 運行 cmd,並最多等待 timeout 秒.
|
| - |
|
27280 |
#函式說明:
|
| - |
|
27281 |
#透過proc來多執行序運作.
|
| - |
|
27282 |
#回傳結果:
|
| - |
|
27283 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27284 |
#$reuslt["error"],執行不正常結束的錯訊息陣列.
|
| - |
|
27285 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27286 |
#$result["argu"],使用的參數.
|
| - |
|
27287 |
#$result["content"],陣列,每個元素為其指令執行的結果訊息陣列,key為"status"代表執行是否正常的識別;key為"statusCode"代表程式結束後回傳給對應executeBy程式的數值,若為"?"則代表程序尚未結束,可透過proc_update函式進行資訊的更新與取得;key為"output"代表標準輸出,若為resource,則代表為pipe;key為"error"代表非標準輸出,若為resource,則代表為pipe;key為"input"代表成功輸入的指令;key為"process"代表該程序經proc_open後的process source;key為"proc_get_status"代表程序的資訊.
|
| - |
|
27288 |
#必填參數:
|
| - |
|
27289 |
#$conf["cmds"],字串陣列,每個元素代表單一程序要執行的指令與參數.
|
| - |
|
27290 |
$conf["threads::proc"]["cmds"]=array($checkListen["cmd"]["cmd"]);
|
| - |
|
27291 |
#可省略參數:
|
| - |
|
27292 |
#$conf["wait"],字串,是否需要等待所有程序結束,預設為"true"要等待;反之為"false"不要等待.
|
| - |
|
27293 |
$conf["threads::proc"]["wait"]="false";
|
| - |
|
27294 |
#$conf["timeout"],字串陣列,每個元素代表單一程序執行的最大等待秒數,超過後將會強迫停止執行,僅當wait參數為"true"時生效.
|
| - |
|
27295 |
$conf["threads::proc"]["timeout"]=$checkListen["cmd"]["timeout"];
|
| - |
|
27296 |
#$conf["workingDir"],字串陣列,個別程式執行時的家目錄,預設不指定.
|
| - |
|
27297 |
#$conf["workingDir"]=array("path");
|
| - |
|
27298 |
#$conf["envs"],2維字串陣列,每個元素代表個別程式執行時的指定環境變數,key變數名稱;value為變數內容.預設為array("QBPWCF" => "Quick Build PHP Website Componment base on Fedora Linux");
|
| - |
|
27299 |
#$conf["envs"]=array(array("key"=>"value"));
|
| - |
|
27300 |
#$conf["executeBy"],字串陣列,每個元素代表個別指令要用什麼程式執行,預設為"bash".
|
| - |
|
27301 |
#$conf["executeBy"]=array("bash");
|
| - |
|
27302 |
#參考資料:
|
| - |
|
27303 |
#https://www.php.net/manual/en/function.proc-open.php
|
| - |
|
27304 |
#https://www.php.net/manual/en/function.proc-get-status.php
|
| - |
|
27305 |
#備註:
|
| - |
|
27306 |
#若需要取得當下的執行狀況,請使用 self::proc_update 來更新.
|
| - |
|
27307 |
$proc=threads::proc($conf["threads::proc"]);
|
| - |
|
27308 |
unset($conf["threads::proc"]);
|
| - |
|
27309 |
|
| - |
|
27310 |
#如果執行異常
|
| - |
|
27311 |
if($proc["status"]==="false"){
|
| - |
|
27312 |
|
| - |
|
27313 |
#設置執行失敗
|
| - |
|
27314 |
$result["status"]="false";
|
| - |
|
27315 |
|
| - |
|
27316 |
#設置錯誤訊息
|
| - |
|
27317 |
$result["error"]=$proc;
|
| - |
|
27318 |
|
| - |
|
27319 |
#回傳結果
|
| - |
|
27320 |
return $result;
|
| - |
|
27321 |
|
| - |
|
27322 |
}#if end
|
| - |
|
27323 |
|
| - |
|
27324 |
#如果程序執行異常
|
| - |
|
27325 |
if($proc["content"][0]["status"]==="false"){
|
| - |
|
27326 |
|
| - |
|
27327 |
#設置執行失敗
|
| - |
|
27328 |
$result["status"]="false";
|
| - |
|
27329 |
|
| - |
|
27330 |
#設置錯誤訊息
|
| - |
|
27331 |
$result["error"]=$proc;
|
| - |
|
27332 |
|
| - |
|
27333 |
#回傳結果
|
| - |
|
27334 |
return $result;
|
| - |
|
27335 |
|
| - |
|
27336 |
}#if end
|
| - |
|
27337 |
|
| - |
|
27338 |
#如果程序結束代碼為0
|
| - |
|
27339 |
if($proc["content"][0]["statusCode"]==="0"){
|
| - |
|
27340 |
|
| - |
|
27341 |
#設置檢查通過
|
| - |
|
27342 |
$pass="true";
|
| - |
|
27343 |
|
| - |
|
27344 |
}#if end
|
| - |
|
27345 |
|
| - |
|
27346 |
#如果檢查不通過
|
| - |
|
27347 |
if($pass==="false"){
|
| - |
|
27348 |
|
| - |
|
27349 |
#提示問題
|
| - |
|
27350 |
echo "service ".$conf["name"]." process not pass test by commamd(".$checkListen["cmd"]["cmd"].")!".PHP_EOL;
|
| - |
|
27351 |
|
| - |
|
27352 |
#如果只要 Report
|
| - |
|
27353 |
if($conf["reportOnly"]==="true"){
|
| - |
|
27354 |
|
| - |
|
27355 |
#輸出
|
| - |
|
27356 |
echo "service ".$conf["name"]." need to restart!".PHP_EOL;;
|
| - |
|
27357 |
|
| - |
|
27358 |
#下一輪
|
| - |
|
27359 |
continue;
|
| - |
|
27360 |
|
| - |
|
27361 |
}#if end
|
| - |
|
27362 |
|
| - |
|
27363 |
#啟動服務
|
| - |
|
27364 |
#函式說明:
|
| - |
|
27365 |
#執行 systemd 程序來管理服務.
|
| - |
|
27366 |
#回傳結果:
|
| - |
|
27367 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27368 |
#$result["error"],錯誤訊息.
|
| - |
|
27369 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27370 |
#$result["argu"],所使用的參數.
|
| - |
|
27371 |
#$result["content"],執行的結果.
|
| - |
|
27372 |
#$result["content"]["srerviceInfo"]["on"],"true",代表運行中,"false",代表無運行.
|
| - |
|
27373 |
#$result["content"]["srerviceInfo"]["auto"],"true",代表自動啟動,"false",代表不自動啟動.
|
| - |
|
27374 |
#必填參數:
|
| - |
|
27375 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
|
| - |
|
27376 |
$conf["cmd::systemd"]["fileArgu"]=$conf["fileArgu"];
|
| - |
|
27377 |
#$conf["name"],字串,服務名稱.
|
| - |
|
27378 |
$conf["cmd::systemd"]["name"]=$conf["name"];
|
| - |
|
27379 |
#可省略參數:
|
| - |
|
27380 |
#$conf["operation"],字串,"enable","disable","start","stop","restart",預設為"list".
|
| - |
|
27381 |
$conf["cmd::systemd"]["operation"]="start";
|
| - |
|
27382 |
#$conf["username"],字串,要用什麼使用者來執行,預設為root使用者
|
| - |
|
27383 |
#$conf["username"]="";
|
| - |
|
27384 |
#$conf["password"],字串,使用者的密碼,預設不使用.
|
| - |
|
27385 |
#$conf["password"]="";
|
| - |
|
27386 |
$systemd=cmd::systemd($conf["cmd::systemd"]);
|
| - |
|
27387 |
unset($conf["cmd::systemd"]);
|
| - |
|
27388 |
|
| - |
|
27389 |
#若運行出錯
|
| - |
|
27390 |
if($systemd["status"]==="false"){
|
| - |
|
27391 |
|
| - |
|
27392 |
#設置執行失敗
|
| - |
|
27393 |
$result["status"]="false";
|
| - |
|
27394 |
|
| - |
|
27395 |
#設置錯誤訊息
|
| - |
|
27396 |
$result["error"]=$systemd;
|
| - |
|
27397 |
|
| - |
|
27398 |
#回傳結果
|
| - |
|
27399 |
return $result;
|
| - |
|
27400 |
|
| - |
|
27401 |
}#if end
|
| - |
|
27402 |
|
| - |
|
27403 |
#下一輪
|
| - |
|
27404 |
continue;
|
| - |
|
27405 |
|
| - |
|
27406 |
}#if end
|
| - |
|
27407 |
|
| - |
|
27408 |
}#if end
|
| - |
|
27409 |
|
| 27195 |
#如果有 verbose
|
27410 |
#如果有 verbose
|
| 27196 |
if($conf["verbose"]==="true"){
|
27411 |
if($conf["verbose"]==="true"){
|
| 27197 |
|
27412 |
|
| 27198 |
#提示什麼條件檢查通過
|
27413 |
#提示什麼條件檢查通過
|
| 27199 |
echo " condition ";
|
27414 |
echo " condition ";
|
| Line 27213... |
Line 27428... |
| 27213 |
|
27428 |
|
| 27214 |
}#foreach end
|
27429 |
}#foreach end
|
| 27215 |
|
27430 |
|
| 27216 |
}#if end
|
27431 |
}#if end
|
| 27217 |
|
27432 |
|
| 27218 |
}#if end
|
27433 |
}#if end
|
| 27219 |
|
27434 |
|
| 27220 |
#過30秒再檢查一次
|
27435 |
#過30秒再檢查一次
|
| 27221 |
sleep($conf["interval"]);
|
27436 |
sleep($conf["interval"]);
|
| 27222 |
|
27437 |
|
| 27223 |
#下一輪
|
27438 |
#下一輪
|