Windows Service Wrapper將nginx變成Windows服務

很多三方小程序都沒有提供將自身註冊爲Windows標準服務的方法,但是通過Windows Service Wrapper即可達到目的

一、下載地址

官方主頁:https://github.com/kohsuke/winsw/

下載地址:https://github.com/kohsuke/winsw/releases

二、使用示例

我們將nginx註冊爲Windows服務。

總之來說,Windows Service Wrapper需要新建被包裝的程序的配置文件

2.0 nginx重啓命令

如下:

Nginx -s stop 快速關閉Nginx,可能不保存相關信息,並迅速終止web服務。(快速退出)
Nginx -s quit 平穩關閉Nginx,保存相關信息,有安排的結束web服務。(平滑退出)
Nginx -s reload 因改變了Nginx相關配置,需要重新加載配置而重載。(重新加載配置)
Nginx -s reopen 重新打開日誌文件。(重新加載日誌)

2.1 重命名WinSW.NET4.exe爲任意名稱,比如winsw.exe

2.2 新建nginx服務配置文件

命名爲winsw.xml,必須與winsw.exe重命名的文件名一致。

必須與命名後的myapp.exe放置在同一目錄,內容如下:

XHTML

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<service>

  <id>nginx</id>

  <name>nginx</name>

  <description>nginx</description>

  <executable>E:\soft\nginx-1.17.1\nginx.exe</executable>

  <logpath>E:\soft\nginx-1.17.1\</logpath>

  <logmode>roll</logmode>

  <depend></depend>

  <startargument>-p</startargument>

  <startargument>E:\soft\nginx-1.17.1\</startargument>

  <stopexecutable>E:\soft\nginx-1.17.1\nginx.exe</stopexecutable>

  <stopargument>-p</stopargument>

  <stopargument>E:\soft\nginx-1.17.1\</stopargument>

  <stopargument>-s</stopargument>

  <stopargument>stop</stopargument>

</service>

2.3註冊服務

以管理員身份運行cmd,輸入:E:\soft\nginx-1.17.1\winsw.exe install,回車,提示安裝服務完成。

2.4卸載

以管理員身份運行cmd,輸入:E:\soft\nginx-1.17.1\winsw.exe uninstall,回車,提示卸載服務完成。

2.5注意

經常通過Windows重啓winSW服務,但子進程並沒有關閉,導致配置不能更新(特別是修改nginx.conf)。

若碰到這種這種情況,需要使用任務管理器手動關閉nginx.exe。

2.6報錯

一直報這個錯FATAL - WMI Operation failure: AccessDenied
打開cmd的時候,改成 以管理員身份運行 就可以了。

三、總結

1、經過使用後發現,Windows服務內註冊的服務路徑不是被委託程序,而是winsw.exe。所以每一個服務封裝,都必須考慮一份獨立的winsw.exe,原因如此。

四、nginx常用命令


進入nginx根目錄

1.啓動nginx   start nginx

2.停止nginx    nginx -s stop (stop表示立即停止nginx,不保存相關信息)

3.停止nginx    nginx -s quit   (quit 表示正常退出nginx,並保存相關信息)

4.重啓nginx  nginx -s reload

5.查看配置是否正常  nginx -t
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章