標籤:
前言
今天介紹一個小工具的使用。我們都知道Windows Service是一種特殊的應用程式,它的好處是可以一直在後台運行,相對來說,比較適合一些需要一直運行同時不需要過多使用者幹預的應用程式,這一類我們稱之為“服務”吧
編寫Windows Service其實是不難的,尤其是如果有Visual Studio的話。但是仍然是有不少童鞋覺得略顯繁瑣,同時,如果有一些其他的程式,我們只拿到一個exe,或者一個bat,但又想讓他象服務一樣運行,怎麼辦呢
答案就是可以使用如下的一個工具,它的名稱就叫:Windows Service Wrapper,簡稱WSW。
wsw的基本使用
一般的使用步驟是:
1. 下載wsw的最新版本,放在任意的位置,修改成你想要的任何名字如“myapp.exe”
2.編寫一個同名的xml檔案 如:myapp.xml
3.使用Install命令進行安裝
myapp.exe install
4.如果想要卸載,則使用Uninstall命令
myapp.exe uninstall
5. 重啟
myapp.exe restart
6:停止
myapp.exe stop
7: 啟動:
myapp.exe start
https://github.com/kohsuke/winsw
設定檔的格式請參考:https://github.com/kohsuke/winsw
我的一個例子如下
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-c</startargument>
<startargument>c:\nginx\conf\nginx.conf</startargument>
<startargument>-c</startargument>
<startargument>c:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-p</stopargument>
<stopargument>c:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
運行install後,在services.msc中可以看到這個服務
相關知識
在Windows系統裡面,還有一類特殊的服務,他們都是用一個特殊的程式啟動的(svchost),如下
那麼,這又是怎麼一回事情呢?有興趣的童鞋可以參考 http://www.howtogeek.com/howto/windows-vista/what-is-svchostexe-and-why-is-it-running/
在Linux系統上面,也有一個類似的工具(而且更加強大),supervisor,有興趣的童鞋可以參考
http://supervisord.org/introduction.html
來自為知筆記(Wiz)
使用Windows Service Wrapper快速建立一個Windows Service 如nginx