| Line 25944... |
Line 25944... |
| 25944 |
#$result["argu"],所使用的參數.
|
25944 |
#$result["argu"],所使用的參數.
|
| 25945 |
#$result["content"],執行的結果.
|
25945 |
#$result["content"],執行的結果.
|
| 25946 |
#必填參數:
|
25946 |
#必填參數:
|
| 25947 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
25947 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
| 25948 |
$conf["fileArgu"]=__FILE__;
|
25948 |
$conf["fileArgu"]=__FILE__;
|
| 25949 |
#$conf["name"],字串,服務名稱.
|
25949 |
#$conf["name"],字串,服務名稱,要檢查的服務名稱.
|
| 25950 |
$conf["name"]="";
|
25950 |
$conf["name"]="";
|
| 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",則其數值為程序名稱.
|
| 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");
|
| 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";
|
| Line 27233... |
Line 27233... |
| 27233 |
#回傳結果:
|
27233 |
#回傳結果:
|
| 27234 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
27234 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| 27235 |
#$result["error"],錯誤訊息.
|
27235 |
#$result["error"],錯誤訊息.
|
| 27236 |
#$result["function"],當前執行的函式名稱.
|
27236 |
#$result["function"],當前執行的函式名稱.
|
| 27237 |
#$result["argu"],所使用的參數.
|
27237 |
#$result["argu"],所使用的參數.
|
| 27238 |
#$result["content"],執行的結果.
|
27238 |
#$result["content"],運行 cmd::keepServiceUp 的回傳結果,僅當參數$conf["keepServiceUp"]為"true"時,才會有該回傳結果.
|
| 27239 |
#必填參數:
|
27239 |
#必填參數:
|
| 27240 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
27240 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
| 27241 |
$conf["fileArgu"]=__FILE__;
|
27241 |
$conf["fileArgu"]=__FILE__;
|
| 27242 |
#$conf["name"],字串,服務名稱,實際產生的system名稱會加上".service".
|
27242 |
#$conf["name"],字串,服務名稱,實際產生的system名稱會加上".service".
|
| 27243 |
$conf["name"]="";
|
27243 |
$conf["name"]="";
|
| Line 27248... |
Line 27248... |
| 27248 |
#$conf["params"]=array("");
|
27248 |
#$conf["params"]=array("");
|
| 27249 |
#$conf["enable"],字串,預設為"true",代表該服務為enable.
|
27249 |
#$conf["enable"],字串,預設為"true",代表該服務為enable.
|
| 27250 |
#$conf["enable"]="true";
|
27250 |
#$conf["enable"]="true";
|
| 27251 |
#$conf["startNow"],字串,預設為"true",代表該服務要立刻執行.
|
27251 |
#$conf["startNow"],字串,預設為"true",代表該服務要立刻執行.
|
| 27252 |
#$conf["startNow"]="true";
|
27252 |
#$conf["startNow"]="true";
|
| - |
|
27253 |
#$conf["keepServiceUp"],字串,是否要另外增加確保服務有保持啟動的服務,預設為"false"代表否;反之為"true"代表是.
|
| - |
|
27254 |
#$conf["keepServiceUp"]="false";
|
| - |
|
27255 |
#$conf["cmd::keepServiceUp"]["checkListen"],陣列,用來判斷服務是否有正確啟動的條件,一個元素代表,其中要有一個socket info符合之,若元素的key為"ip",則其數值為[ipv4/ipv6]:port/protocol(tcp/udp);若元素的key為"addr",則其數值為unix domain socket 的位置與名稱;若元素的key為"name",則其數值為程序名稱.
|
| - |
|
27256 |
#$conf["cmd::keepServiceUp"]["checkListen"]=array(array("ip"=>169.254.1.1:443/tcp,"addr"=>/usr/lib/qbpwcf/qbpwcf-usock.sock,"name"=>"addr"),"name"=>"httpd");
|
| - |
|
27257 |
#$conf["cmd::keepServiceUp"]["interval"],字串,檢查沒問題後,要多少秒後再檢查一次,預設為30秒,亦即"30".
|
| - |
|
27258 |
#$conf["cmd::keepServiceUp"]["interval"]="30";
|
| 27253 |
#參考資料:
|
27259 |
#參考資料:
|
| 27254 |
#無.
|
27260 |
#無.
|
| 27255 |
#備註:
|
27261 |
#備註:
|
| 27256 |
#無.
|
27262 |
#無.
|
| 27257 |
*/
|
27263 |
*/
|
| Line 27317... |
Line 27323... |
| 27317 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
27323 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
| 27318 |
#$conf["canNotBeEmpty"]=array();
|
27324 |
#$conf["canNotBeEmpty"]=array();
|
| 27319 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
27325 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
| 27320 |
#$conf["canBeEmpty"]=array();
|
27326 |
#$conf["canBeEmpty"]=array();
|
| 27321 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
27327 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
| 27322 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("params","enable","startNow","description");
|
27328 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("params","enable","startNow","description","keepServiceUp","cmd::keepServiceUp");
|
| 27323 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
27329 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
| 27324 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("params","enable","startNow","description");
|
27330 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("params","enable","startNow","description","keepServiceUp","cmd::keepServiceUp");
|
| 27325 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
27331 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
| 27326 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string","string","string");
|
27332 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string","string","string","string","array");
|
| 27327 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$c)onf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
27333 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$c)onf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
| 27328 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,"true","true","service description.");
|
27334 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,"true","true","service description.","false",null);
|
| 27329 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
27335 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
| 27330 |
#$conf["disallowAllSkipableVarIsEmpty"]="";
|
27336 |
#$conf["disallowAllSkipableVarIsEmpty"]="";
|
| 27331 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
27337 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
| 27332 |
#$conf["disallowAllSkipableVarIsEmptyArray"]="";
|
27338 |
#$conf["disallowAllSkipableVarIsEmptyArray"]="";
|
| 27333 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
27339 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
| Line 27731... |
Line 27737... |
| 27731 |
return $result;
|
27737 |
return $result;
|
| 27732 |
|
27738 |
|
| 27733 |
}#if end
|
27739 |
}#if end
|
| 27734 |
|
27740 |
|
| 27735 |
}#if end
|
27741 |
}#if end
|
| - |
|
27742 |
|
| - |
|
27743 |
#如果 keepServiceUp 為 "true"
|
| - |
|
27744 |
if($conf["keepServiceUp"]==="true"){
|
| - |
|
27745 |
|
| - |
|
27746 |
#檢查用於 cmd::keepServiceUp 的參數
|
| - |
|
27747 |
#函式說明:
|
| - |
|
27748 |
#檢查必填與可省略參數,可省略參數可指定預設要給與什麼數值內容。
|
| - |
|
27749 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27750 |
#$reuslt["error"],執行不正常結束的錯訊息陣列.
|
| - |
|
27751 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27752 |
#$result["argu"],設置給予的參數.
|
| - |
|
27753 |
#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
|
| - |
|
27754 |
#$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
|
| - |
|
27755 |
#$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
|
| - |
|
27756 |
#$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
|
| - |
|
27757 |
#$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
|
| - |
|
27758 |
#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
|
| - |
|
27759 |
#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
|
| - |
|
27760 |
#$result["notNeedVar"],字串陣列,多餘的參數名稱.
|
| - |
|
27761 |
#必填寫的參數:
|
| - |
|
27762 |
#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
|
| - |
|
27763 |
$conf["variableCheck::checkArguments"]["varInput"]=&$conf["cmd::keepServiceUp"];
|
| - |
|
27764 |
#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
|
| - |
|
27765 |
$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
|
| - |
|
27766 |
#可以省略的參數:
|
| - |
|
27767 |
#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
|
| - |
|
27768 |
$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("");
|
| - |
|
27769 |
#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
|
| - |
|
27770 |
$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("");
|
| - |
|
27771 |
#$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
|
| - |
|
27772 |
$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
|
| - |
|
27773 |
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
|
| - |
|
27774 |
#$conf["canNotBeEmpty"]=array();
|
| - |
|
27775 |
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
|
| - |
|
27776 |
#$conf["canBeEmpty"]=array();
|
| - |
|
27777 |
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
|
| - |
|
27778 |
$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("checkListen","interval");
|
| - |
|
27779 |
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
|
| - |
|
27780 |
$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("checkListen","interval");
|
| - |
|
27781 |
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
|
| - |
|
27782 |
$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string");
|
| - |
|
27783 |
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$c)onf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
|
| - |
|
27784 |
$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
|
| - |
|
27785 |
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
|
| - |
|
27786 |
#$conf["disallowAllSkipableVarIsEmpty"]="";
|
| - |
|
27787 |
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
|
| - |
|
27788 |
#$conf["disallowAllSkipableVarIsEmptyArray"]="";
|
| - |
|
27789 |
#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
|
| - |
|
27790 |
#$conf["arrayCountEqualCheck"][]=array();
|
| - |
|
27791 |
#參考資料來源:
|
| - |
|
27792 |
#array_keys=>http://php.net/manual/en/function.array-keys.php
|
| - |
|
27793 |
$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
|
| - |
|
27794 |
unset($conf["variableCheck::checkArguments"]);
|
| - |
|
27795 |
|
| - |
|
27796 |
#如果檢查參數失敗
|
| - |
|
27797 |
if($checkArguments["status"]==="false"){
|
| - |
|
27798 |
|
| - |
|
27799 |
#設置執行失敗
|
| - |
|
27800 |
$result["status"]="false";
|
| - |
|
27801 |
|
| - |
|
27802 |
#設置錯誤訊息
|
| - |
|
27803 |
$result["error"]=$checkArguments;
|
| - |
|
27804 |
|
| - |
|
27805 |
#回傳結果
|
| - |
|
27806 |
return $result;
|
| - |
|
27807 |
|
| - |
|
27808 |
}#if end
|
| - |
|
27809 |
|
| - |
|
27810 |
#如果檢查參數失敗
|
| - |
|
27811 |
if($checkArguments["passed"]==="false"){
|
| - |
|
27812 |
|
| - |
|
27813 |
#設置執行失敗
|
| - |
|
27814 |
$result["status"]="false";
|
| - |
|
27815 |
|
| - |
|
27816 |
#設置錯誤訊息
|
| - |
|
27817 |
$result["error"]=$checkArguments;
|
| - |
|
27818 |
|
| - |
|
27819 |
#回傳結果
|
| - |
|
27820 |
return $result;
|
| - |
|
27821 |
|
| - |
|
27822 |
}#if end
|
| - |
|
27823 |
|
| - |
|
27824 |
#要執行的php程式內容
|
| - |
|
27825 |
$phpScript2run=<<<'PHP'
|
| - |
|
27826 |
|
| - |
|
27827 |
#用於確保服務在線的程式 - start
|
| - |
|
27828 |
|
| - |
|
27829 |
#函式說明:
|
| - |
|
27830 |
#執行 systemd 程序來確保服務是運行中.
|
| - |
|
27831 |
#回傳結果:
|
| - |
|
27832 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27833 |
#$result["error"],錯誤訊息.
|
| - |
|
27834 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27835 |
#$result["argu"],所使用的參數.
|
| - |
|
27836 |
#$result["content"],執行的結果.
|
| - |
|
27837 |
#必填參數:
|
| - |
|
27838 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
| - |
|
27839 |
$conf["cmd::keepServiceUp"]["fileArgu"]=$conf["fileArgu"];
|
| - |
|
27840 |
#$conf["name"],字串,服務名稱.
|
| - |
|
27841 |
$conf["cmd::keepServiceUp"]["name"]=$conf["name"];
|
| - |
|
27842 |
#可省略參數:
|
| - |
|
27843 |
#$conf["username"],字串,要用什麼使用者來執行,預設為root使用者
|
| - |
|
27844 |
#$conf["username"]="";
|
| - |
|
27845 |
#$conf["password"],字串,使用者的密碼,預設不使用.
|
| - |
|
27846 |
#$conf["password"]="";
|
| - |
|
27847 |
#$conf["checkListen"],陣列,用來判斷服務是否有正確啟動的條件,一個元素代表,其中要有一個socket info符合之,若元素的key為"ip",則其數值為[ipv4/ipv6]:port:protocol(tcp/udp);若元素的key為"addr",則其數值為unix domain socket 的位置與名稱;若元素的key為"name",則其數值為程序名稱.
|
| - |
|
27848 |
#$conf["checkListen"]=array(array("ip"=>169.254.1.1:443/tcp,"addr"=>/usr/lib/qbpwcf/qbpwcf-usock.sock,"name"=>"addr"),"name"=>"httpd");
|
| - |
|
27849 |
#$conf["interval"],字串,檢查沒問題後,要多少秒後再檢查一次,預設為30秒,亦即"30".
|
| - |
|
27850 |
#$conf["interval"]="30";
|
| - |
|
27851 |
#$conf["reportOnly"],字串,"true"代表不「啟動/重新啟動」服務,只是輸出訊息表示服務有正常或需要處理;預設為"false"代表直接「啟動/重新啟動」.
|
| - |
|
27852 |
#$conf["reportOnly"]="true";
|
| - |
|
27853 |
#$conf["verbose"],字串,預設為"false",若為"true"則會印出過程訊息.
|
| - |
|
27854 |
$conf["cmd::keepServiceUp"]["verbose"]="true";
|
| - |
|
27855 |
#$conf["onlyWhenEnable"],字串,預設為"true",代表若服務為enable才會將其變成運行中;反之為"false".
|
| - |
|
27856 |
#$conf["onlyWhenEnable"]="false";
|
| - |
|
27857 |
#參考資料:
|
| - |
|
27858 |
#無.
|
| - |
|
27859 |
#備註:
|
| - |
|
27860 |
#無.
|
| - |
|
27861 |
$keepServiceUp=cmd::keepServiceUp($conf["cmd::keepServiceUp"]);
|
| - |
|
27862 |
unset($conf["cmd::keepServiceUp"]);
|
| - |
|
27863 |
|
| - |
|
27864 |
#如果執行異常
|
| - |
|
27865 |
if($keepServiceUp["status"]==="false"){
|
| - |
|
27866 |
|
| - |
|
27867 |
#設置執行失敗
|
| - |
|
27868 |
$result["status"]="false";
|
| - |
|
27869 |
|
| - |
|
27870 |
#設置錯誤訊息
|
| - |
|
27871 |
$result["error"]=$keepServiceUp;
|
| - |
|
27872 |
|
| - |
|
27873 |
#回傳結果
|
| - |
|
27874 |
return $result;
|
| - |
|
27875 |
|
| - |
|
27876 |
}#if end
|
| - |
|
27877 |
|
| - |
|
27878 |
#用於確保服務在線的程式 - end
|
| - |
|
27879 |
|
| - |
|
27880 |
PHP;
|
| - |
|
27881 |
|
| - |
|
27882 |
#遞迴呼叫,建立用於確保 $conf[name] 服務在線的服務
|
| - |
|
27883 |
#函式說明:
|
| - |
|
27884 |
#將要執行的程式變成透過 systemd 來運行.
|
| - |
|
27885 |
#回傳結果:
|
| - |
|
27886 |
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
|
| - |
|
27887 |
#$result["error"],錯誤訊息.
|
| - |
|
27888 |
#$result["function"],當前執行的函式名稱.
|
| - |
|
27889 |
#$result["argu"],所使用的參數.
|
| - |
|
27890 |
#$result["content"],執行的結果.
|
| - |
|
27891 |
#必填參數:
|
| - |
|
27892 |
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.
|
| - |
|
27893 |
$paramsOfRegisterService["fileArgu"]=__FILE__;
|
| - |
|
27894 |
#$conf["name"],字串,服務名稱,實際產生的system名稱會加上".service".
|
| - |
|
27895 |
$paramsOfRegisterService["name"]=$conf["name"]."-keep";
|
| - |
|
27896 |
#$conf["cmd"],字串,要執行的指令.
|
| - |
|
27897 |
$paramsOfRegisterService["cmd"]="php";
|
| - |
|
27898 |
#可省略參數:
|
| - |
|
27899 |
#$conf["params"],字串陣列,指令要使用的參數.
|
| - |
|
27900 |
$paramsOfRegisterService["params"]=array("-r",$phpScript2run);
|
| - |
|
27901 |
#$conf["enable"],字串,預設為"true",代表該服務為enable.
|
| - |
|
27902 |
#$conf["enable"]="true";
|
| - |
|
27903 |
#$conf["startNow"],字串,預設為"true",代表該服務要立刻執行.
|
| - |
|
27904 |
#$conf["startNow"]="true";
|
| - |
|
27905 |
#$conf["keepServiceUp"],字串,是否要另外增加確保服務有保持啟動的服務,預設為"false"代表否;反之為"true"代表是.
|
| - |
|
27906 |
#$conf["keepServiceUp"]="false";
|
| 27736 |
|
27907 |
#$conf["cmd::keepServiceUp"]["checkListen"],陣列,用來判斷服務是否有正確啟動的條件,一個元素代表,其中要有一個socket info符合之,若元素的key為"ip",則其數值為[ipv4/ipv6]:port:protocol(tcp/udp);若元素的key為"addr",則其數值為unix domain socket 的位置與名稱;若元素的key為"name",則其數值為程序名稱.
|
| - |
|
27908 |
#$conf["cmd::keepServiceUp"]["checkListen"]=array(array("ip"=>169.254.1.1:443/tcp,"addr"=>/usr/lib/qbpwcf/qbpwcf-usock.sock,"name"=>"addr"),"name"=>"httpd");
|
| - |
|
27909 |
#$conf["cmd::keepServiceUp"]["interval"],字串,檢查沒問題後,要多少秒後再檢查一次,預設為30秒,亦即"30".
|
| - |
|
27910 |
#$conf["cmd::keepServiceUp"]["interval"]="30";
|
| - |
|
27911 |
#參考資料:
|
| - |
|
27912 |
#無.
|
| - |
|
27913 |
#備註:
|
| - |
|
27914 |
#無.
|
| - |
|
27915 |
$registerService=cmd::registerService($paramsOfRegisterService);
|
| - |
|
27916 |
|
| - |
|
27917 |
#如果執行異常
|
| - |
|
27918 |
if($registerService["status"]==="false"){
|
| - |
|
27919 |
|
| - |
|
27920 |
#設置執行失敗
|
| - |
|
27921 |
$result["status"]="false";
|
| - |
|
27922 |
|
| - |
|
27923 |
#設置錯誤訊息
|
| - |
|
27924 |
$result["error"]=$registerService;
|
| - |
|
27925 |
|
| - |
|
27926 |
#回傳結果
|
| - |
|
27927 |
return $result;
|
| - |
|
27928 |
|
| - |
|
27929 |
}#if end
|
| - |
|
27930 |
|
| - |
|
27931 |
#記錄運行 cmd::keepServiceUp 的回傳結果
|
| - |
|
27932 |
$result["content"]=$registerService;
|
| - |
|
27933 |
|
| - |
|
27934 |
}#if end
|
| - |
|
27935 |
|
| 27737 |
#設置執行正常
|
27936 |
#設置執行正常
|
| 27738 |
$result["status"]="true";
|
27937 |
$result["status"]="true";
|
| 27739 |
|
27938 |
|
| 27740 |
#回傳結果
|
27939 |
#回傳結果
|
| 27741 |
return $result;
|
27940 |
return $result;
|