把Nginx註冊成Windows 系統服務

來源:互聯網
上載者:User

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的安裝(解壓)目錄下,然後運行: 

Command代碼

instsrv Nginx D:\nginx\srvany.exe

這樣就安裝了一個名為Nginx的服務。也就是將srvany.exe註冊成一個服務Nginx。Net start Nginx時,肯定會運行srvany.exe。 


3. 配置Nginx的運行參數:目的是運行srvany.exe時,附帶運行D:\nginx\nginx.exe程式。 
可以直接將配置匯入到註冊表 

Window register代碼

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命令: 

Command代碼

taskkill /F /IM nginx.exe > nul

結果是寫一個stop_nginx指令碼來處理nginx停止的所有操作 

Command代碼

@echo off  
echo Stopping nginx service...
net stop nginx  
echo Kill nginx process...  

taskkill /F /IM nginx.exe > nul

順便,如果想刪除服務,使用命令: 

Command代碼

sc delete Nginx  

說到這,大家一定會重新思考:如果同樣寫一個start_nginx指令碼,那麼還有使用windows服務的必要嗎?指令碼方式運行nginx除了有運行控制台視窗,似乎沒有區別了。有好事者寫了一個RunHiddenConsole.exe,可以隱藏控制台視窗。似乎完全不必考慮使用windows服務方法了。 
峰迴路轉,別忘記我們的初衷,使用windows服務可以在使用者退出登陸時,仍然可以運行nginx進程 ,而指令碼方式想如此運行就得頗費點周折,結論是windows服務仍然是有必要的,但僅用於啟動nginx,至於停止nginx請使用前述指令碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.