Nginx添加到windows服務


在windows平台,把Nginx注冊到服務,又可以啟動、停止和重啟的方法,網上並沒找到好的辦法。

既然如此,唯有自己寫程序實現了

使用C#進行編寫,有興趣的可以下載源碼自己改:源碼下載(2017-06-26)舊版下載(2017-06-23)

或直接下載編譯好的程序,需要.net framework 2.0或.net framework 4.0的環境支持

通用版本程序下載(2017-06-26)Nginx專用版本程序下載(2017-06-23)

通用版本,使用自己定義的bat腳本,實現自定義windows服務,應該可用於絕大多數像nginx等這類不方便使用windows服務的程序

通用版本目錄結構及說明:

  MyInstall.bat :安裝服務的腳本,用記事本打開,修改"set my=MyService",讓my的值為你想要注冊的服務名,如“Hello”。

  MyService.bat :這個腳本是服務啟動時執行的腳本,可自己實現自己的啟動邏輯

  MyService.exe :注冊為windows服務的服務程序,通過它來管理實際需要運行的服務程序。

  2.0和4.0目錄 :存放的是MyService.exe對應於.net framework 2.0和.net framework 4.0的環境的exe

MyService.exe和MyService.bat文件名必須和MyInstall.bat中配置的服務名一致,如“Hello.exe”、“Hello.bat”

 

使用通用版本程序安裝nginx服務:

  Nginx添加到windows服務時很簡單,你可以什么都不改,只需要安裝好對應的.net framework環境

  把三個文件復制到nginx.exe的同級目錄,雙擊運行MyInstall.bat進行安裝,安裝后將會看到服務中增加了一個服務名為“MyService”的服務,即可用它啟動和重啟nginx服務了。

 

新增加了一個專門為nginx提供的專用版本的服務,該版本的好處就是不需要另外的腳本支持,即不需要額外的bat腳本配置文件支持的

  MyNginxServiceInstall.bat :安裝服務的腳本,用記事本打開,修改"set my=MyNginxService",讓my的值為你想要注冊的服務名,如“Hello”。

  MyNginxService.exe :文件名即服務名,可修改為你需要注冊的服務名,如上面配置為“Hello”,則修改為“Hello.exe”。

  復制MyNginxService.exe和MyNginxServiceInstall.bat至nginx.exe同級目錄

  以管理員身份,運行MyNginxServiceInstall.bat進行服務安裝。

  本exe依賴.net framework框架,具體版本可復制下載文件里2.0或4.0目錄下的同名exe替換

 

更新:

2017-06-26

移除舊版本中的停止腳本方法,利用windows的父子進程信息,找出所有關聯的子進程進行Kill,方便結束大多像java等通過腳本啟動的,難關閉的程序。

修改啟動腳本文件名,改為和exe同名。

更新源代碼zip,作為解決方案,放了兩個項目,一個為通用程序,一個為nginx專用程序。

2017-06-23

更新了下啟動和結束腳本,程序的版本和文件屬性

如果是通過MyStart.bat要再運行另一個bat的,則是:start /B C:\your.bat,其中/B為不啟動新的窗口,且MyStart.bat為無窗口模式運行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM