欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

nginx支持服務(wù)控制管理器的方法與流程

文檔序號:11864419閱讀:314來源:國知局
nginx支持服務(wù)控制管理器的方法與流程

本發(fā)明涉及nginx技術(shù)領(lǐng)域,特別是涉及一種nginx支持服務(wù)控制管理器的方法。



背景技術(shù):

nginx是一款著名的高性能開源Web與反向代理服務(wù)器,支持windows和linux操作系統(tǒng),因?yàn)樵趙indows系統(tǒng)上還不支持SCM(服務(wù)控制管理器),所以只能以控制臺方式運(yùn)行,但這樣并不是在后臺運(yùn)行,也不能在系統(tǒng)登錄前啟動。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是提供一種nginx支持服務(wù)控制管理器的方法,可以使得nginx在windows系統(tǒng)上支持服務(wù)控制管理器。

為了解決上述的技術(shù)問題,本發(fā)明的技術(shù)方案如下:

一種nginx支持服務(wù)控制管理器的方法,用于windows系統(tǒng),包括:所述windows系統(tǒng)創(chuàng)建邏輯線程;在nginx的管理進(jìn)程的邏輯線程上,所述邏輯線程調(diào)用服務(wù)主函數(shù);所述服務(wù)主函數(shù)調(diào)用第一委托主函數(shù);所述第一委托主函數(shù)調(diào)用服務(wù)初始化模塊;在服務(wù)初始化模塊中進(jìn)行nginx的服務(wù)初始化。

進(jìn)一步,所述服務(wù)主函數(shù)調(diào)用第一委托主函數(shù)的過程包括:所述服務(wù)主函數(shù)輸入is_scm為1,is_scm為新添加的參數(shù);當(dāng)所述第一委托主函數(shù)返回后,更新服務(wù)狀態(tài)為已停止。

進(jìn)一步,所述第一委托主函數(shù)調(diào)用服務(wù)初始化模塊的過程包括:判斷is_scm是否為0;若為0,則顯示nginx的版本和幫助信息,并初始化log模塊;若不為0,則初始化log模塊;判斷is_scm是否為1;若為1,則所述第一委托主函數(shù)調(diào)用服務(wù)初始化模塊,然后判斷is_scm是否為0;若不為1,則判斷is_scm是否為0;若為0,則測試nginx的配置和處理信號;若不為0,則更新nginx的服務(wù)狀態(tài)為正在運(yùn)行。

進(jìn)一步,所述在服務(wù)初始化模塊中進(jìn)行服務(wù)初始化的過程包括:注冊進(jìn)程退出處理器;注冊服務(wù)控制處理器;在所述服務(wù)初始化模塊內(nèi)設(shè)置nginx的服務(wù)狀態(tài)為正在啟動。

進(jìn)一步,還包括:所述windows系統(tǒng)啟動nginx的所述管理進(jìn)程;在所述管理進(jìn)程中的第一主線程調(diào)用第一主函數(shù);當(dāng)發(fā)生用戶操作時(shí),所述第一主線程調(diào)用服務(wù)控制處理器。

進(jìn)一步,所述在所述管理進(jìn)程中的第一主線程調(diào)用第一主函數(shù)的步驟包括:初始化服務(wù)啟動表;啟動服務(wù)控制調(diào)度程序。

進(jìn)一步,在所述服務(wù)控制處理器內(nèi),還包括:用戶請求停止nginx的服務(wù);若停止,則更新nginx的服務(wù)狀態(tài)為正在停止,并發(fā)送信號通知所有工作進(jìn)程退出;若沒有停止,則返回。

進(jìn)一步,還包括:在所述管理進(jìn)程中創(chuàng)建工作進(jìn)程;在所述工作進(jìn)程中的第二主線程調(diào)用第二主函數(shù);所述第二主函數(shù)調(diào)用第二委托主函數(shù)。

進(jìn)一步,所述第二主函數(shù)調(diào)用第二委托主函數(shù)的過程包括:初始化nginx的服務(wù)啟動表;啟動服務(wù)控制調(diào)度程序;判斷是否以控制臺方式運(yùn)行;若是,則輸入is_scm為0,并調(diào)用第二委托主函數(shù);若不是,則所述第二委托主函數(shù)返回。

進(jìn)一步:is_scm用于標(biāo)識程序運(yùn)行方式,若is_scm不為0,則表示以服務(wù)控制管理器方式運(yùn)行,若is_scm為0,則表示以控制臺方式運(yùn)行。

與現(xiàn)有技術(shù)相比,本發(fā)明包括以下優(yōu)點(diǎn):

1、本發(fā)明實(shí)施例的方法通過引入第一委托主函數(shù),由邏輯線程代替了現(xiàn)有技術(shù)中nginx的管理進(jìn)程,使得nginx以服務(wù)控制管理器的方式運(yùn)行,并兼容了控制臺運(yùn)行方式。

2、本發(fā)明實(shí)施例的方法使用進(jìn)程退出處理器,統(tǒng)一報(bào)告nginx服務(wù)狀態(tài)為已停止。

附圖說明

圖1是本發(fā)明實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖;

圖2是本發(fā)明實(shí)施例的nginx支持服務(wù)控制管理器的方法的服務(wù)主函數(shù)調(diào)用第一委托主函數(shù)步驟的流程圖;

圖3是本發(fā)明實(shí)施例的nginx支持服務(wù)控制管理器的方法的第一委托主函數(shù)調(diào)用服務(wù)初始化模塊步驟的流程圖;

圖4是本發(fā)明實(shí)施例的nginx支持服務(wù)控制管理器的方法的在服務(wù)初始化模塊中進(jìn)行nginx的服務(wù)初始化步驟的流程圖;

圖5是本發(fā)明另一實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖;

圖6是本發(fā)明另一實(shí)施例的nginx支持服務(wù)控制管理器的方法的在管理進(jìn)程中的第一主線程調(diào)用第一主函數(shù)步驟的流程圖;

圖7是本發(fā)明另一實(shí)施例的nginx支持服務(wù)控制管理器的方法的在服務(wù)控制處理器內(nèi)的步驟的流程圖;

圖8是本發(fā)明又一實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖;

圖9是本發(fā)明又一實(shí)施例的nginx支持服務(wù)控制管理器的方法的第二主函數(shù)調(diào)用第二委托主函數(shù)步驟的流程圖。

具體實(shí)施方式

為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。

本發(fā)明中所述的“第一”和“第二”僅用于區(qū)分,沒有實(shí)際意義。

本發(fā)明實(shí)施例公開了一種nginx支持服務(wù)控制管理器的方法,用于windows系統(tǒng)。如圖1所示,為本發(fā)明實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖。該方法具體包括如下的過程:

步驟S101:windows系統(tǒng)創(chuàng)建邏輯線程。

步驟S102:在nginx的管理進(jìn)程的邏輯線程上,邏輯線程調(diào)用服務(wù)主函數(shù)。

步驟S103:服務(wù)主函數(shù)調(diào)用第一委托主函數(shù)。

編寫程序時(shí),委托主函數(shù)可以用ngx_main表示。

步驟S104:第一委托主函數(shù)調(diào)用服務(wù)初始化模塊。

步驟S105:在服務(wù)初始化模塊中進(jìn)行nginx的服務(wù)初始化。

本發(fā)明實(shí)施例的方法通過引入第一委托主函數(shù),由邏輯線程代替了現(xiàn)有技術(shù)中nginx的管理進(jìn)程,使得nginx以服務(wù)控制管理器的方式運(yùn)行,并兼容了控制臺運(yùn)行方式。

具體的,如圖2所示,步驟S103的過程具體包括:

步驟S1031:服務(wù)主函數(shù)輸入is_scm為1。

其中,is_scm為新添加的參數(shù)。is_scm用于標(biāo)識程序運(yùn)行方式,若is_scm不為0,則表示以服務(wù)控制管理器方式運(yùn)行,若is_scm為0,則表示以控制臺方式運(yùn)行。

步驟S1032:當(dāng)?shù)谝晃兄骱瘮?shù)返回后,更新nginx的服務(wù)狀態(tài)為已停止。

邏輯線程代替了現(xiàn)有技術(shù)nginx的管理進(jìn)程,表明nginx已經(jīng)以服務(wù)控制管理器的方式運(yùn)行,所以以is_scm為1調(diào)用第一委托主函數(shù),當(dāng)?shù)谝晃兄骱瘮?shù)返回時(shí),就表明管理進(jìn)程退出了,應(yīng)該更新nginx的服務(wù)狀態(tài)為已停止,然后返回表明當(dāng)前服務(wù)結(jié)束了。

具體的,如圖3所示,步驟S104的過程具體包括:

步驟S1041:判斷is_scm是否為0。

若為0,則依次進(jìn)行步驟S1042和S1043;若不為0,則進(jìn)行步驟S1043。

步驟S1042:顯示nginx的版本和幫助信息。

步驟S1043:初始化log模塊。

由于服務(wù)初始化須將錯(cuò)誤記錄在log(日志)中,所以服務(wù)初始化模塊應(yīng)在初始化log模塊后調(diào)用。

步驟S1044:判斷is_scm是否為1。

若為1,則依次進(jìn)行步驟S1045和S1046。若不為1,則進(jìn)行步驟S1046。

步驟S1045:第一委托主函數(shù)調(diào)用服務(wù)初始化模塊。

步驟S1046:判斷is_scm是否為0。

若為0,則進(jìn)行步驟S1047;若不為0,則進(jìn)行步驟S1048。

步驟S1047:測試nginx的配置和處理信號。

步驟S1048:更新nginx的服務(wù)狀態(tài)為正在運(yùn)行。

具體的,如圖4所示,步驟S105的過程具體包括:

步驟S1051:注冊進(jìn)程退出處理器。

步驟S1052:注冊服務(wù)控制處理器。

步驟S1053:在服務(wù)初始化模塊內(nèi)設(shè)置nginx的服務(wù)狀態(tài)為正在啟動。

由于在nginx實(shí)現(xiàn)中,有多處出現(xiàn)異常錯(cuò)誤而直接退出,因此首先注冊了進(jìn)程退出處理器,在其內(nèi)報(bào)告服務(wù)狀態(tài)為已停止,這樣只要進(jìn)程退出了,在服務(wù)控制管理器上就能看到已停止的狀態(tài)了。

如圖5所示,為本發(fā)明另一實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖。優(yōu)選的,與邏輯線程的流程配合,本發(fā)明另一實(shí)施例的方法還包括:

步驟S201:windows系統(tǒng)啟動nginx的管理進(jìn)程。

步驟S202:在管理進(jìn)程中的第一主線程調(diào)用第一主函數(shù)。

步驟S203:當(dāng)發(fā)生用戶操作時(shí),第一主線程調(diào)用服務(wù)控制處理器。

具體的,如圖6所示,步驟S202具體包括:

步驟S2021:初始化服務(wù)啟動表。

步驟S2022:啟動服務(wù)控制調(diào)度程序。

具體的,如圖7所示,在服務(wù)控制處理器內(nèi),該方法還具體包括:

步驟S301:用戶請求停止nginx的服務(wù)。

若停止,則進(jìn)行步驟S302;若沒有停止,則進(jìn)行步驟S303。

步驟S302:更新nginx的服務(wù)狀態(tài)為正在停止,并發(fā)送信號通知所有工作進(jìn)程退出。

步驟S303:返回。

該服務(wù)控制處理器內(nèi)的流程是一種異步執(zhí)行流。當(dāng)從服務(wù)控制管理器停止時(shí)會請求停止服務(wù),重新啟動服務(wù)時(shí)會先請求停止服務(wù)、再請求啟動服務(wù)。該步驟簡單地處理了停止請求,其它如暫停、繼續(xù)和關(guān)機(jī)等請求,可依具體需求擴(kuò)展。

如圖8所示,為本發(fā)明又一實(shí)施例的nginx支持服務(wù)控制管理器的方法的流程圖。優(yōu)選的,與邏輯線程的流程配合,本發(fā)明又一實(shí)施例的方法還包括:

步驟S401:在管理進(jìn)程中創(chuàng)建工作進(jìn)程。

步驟S402:在工作進(jìn)程中的第二主線程調(diào)用第二主函數(shù)。

步驟S403:第二主函數(shù)調(diào)用第二委托主函數(shù)。

具體的,如圖9所示,步驟S403的具體過程包括:

步驟S4031:初始化nginx的服務(wù)啟動表。

步驟S4032:啟動服務(wù)控制調(diào)度程序。

步驟S4033:判斷是否以控制臺方式運(yùn)行。

若是,則進(jìn)行步驟S4044;若不是,則進(jìn)行步驟S4045。

步驟S4044:輸入is_scm為0,并調(diào)用第二委托主函數(shù)。

步驟S4045:第二委托主函數(shù)返回。

如果以命令行啟動nginx,也就是管理進(jìn)程,或nginx產(chǎn)生工作進(jìn)程時(shí),那么以控制臺方式調(diào)用第二主函數(shù),進(jìn)而以is_scm為0調(diào)用第二委托主函數(shù),當(dāng)?shù)诙兄骱瘮?shù)返回時(shí),就表示管理進(jìn)程或工作進(jìn)程退出了。

以上對本發(fā)明所提供的技術(shù)方案,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
永年县| 扎囊县| 内江市| 惠水县| 陆丰市| 诸城市| 望都县| 麻江县| 方城县| 乌鲁木齐县| 肇庆市| 晋宁县| 图木舒克市| 龙游县| 江城| 清水县| 大荔县| 武胜县| 安吉县| 旬邑县| 东宁县| 大兴区| 拉萨市| 大冶市| 隆德县| 乐亭县| 嘉兴市| 蓝山县| 灵川县| 定日县| 镇坪县| 牡丹江市| 通江县| 涪陵区| 桐柏县| 衡阳县| 嵩明县| 马尔康县| 宁武县| 满城县| 个旧市|