把Nginx注册成Windows 系统服务(转载)
1. 下載微軟的2個工具: instsrv.exe、srvany.exe?
去微軟網站下載安裝Windows Server 2003 Resource Kit Tools(rktools.exe),它包括標題提及的所有必要的工具,下載完安裝好。
?http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe
2. 運行命令?
在rktools安裝目錄下(一般在C:\Program Files\Windows Resource Kits\Tools目錄)可以發現這兩個程序.在運行下面命令之前,確保將srvany.exe復制到nginx的安裝(解壓)目錄下,然后運行:?
這樣就安裝了一個名為Nginx的服務。也就是將srvany.exe注冊成一個服務Nginx。Net start?Nginx時,肯定會運行srvany.exe。?
3. 配置Nginx的運行參數:目的是運行srvany.exe時,附帶運行D:\nginx\nginx.exe程序。?
可以直接將配置導入到注冊表?
Windows Registry Editor Version?5.00??
?[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters] ??
"Application"="d:\\nginx\\nginx.exe"??
"AppParameters"=""??
"AppDirectory"="d:\\nginx\\nginx\\"??
現在就可以通過控制面板->管理員工具->服務中找到該服務,并啟動和停止了。?
但是,當停止Nginix服務后,訪問瀏覽器仍然能看到網站。查看進程,你會發現,Nginx啟動了兩個nginx進程(根據nginx.conf的配置worker_processes 1;),Fork出來的進程顯然沒有被停止,結果就是nginx永遠關不掉。因此徹底關閉nginx請使用taskkill命令:?
結果是寫一個stop_nginx腳本來處理nginx停止的所有操作?
echo Stopping nginx service...
net stop nginx??
echo Kill nginx process...??
taskkill /F /IM nginx.exe > nul
順便,如果想刪除服務,使用命令:?
說到這,大家一定會重新思考:如果同樣寫一個start_nginx腳本,那么還有使用windows服務的必要嗎?腳本方式運行nginx除了有運行控制臺窗口,似乎沒有區別了。有好事者寫了一個RunHiddenConsole.exe,可以隱藏控制臺窗口。似乎完全不必考慮使用windows服務方法了。?
峰回路轉,別忘記我們的初衷,使用windows服務可以在用戶退出登陸時,仍然可以運行nginx進程 ,而腳本方式想如此運行就得頗費點周折,結論是windows服務仍然是有必要的,但僅用于啟動nginx,至于停止nginx請使用前述腳本。
轉載于:https://www.cnblogs.com/zsuxiong/archive/2011/12/26/2301430.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的把Nginx注册成Windows 系统服务(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARM学习方法
- 下一篇: 修炼九阴真经Windows Phone开