茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670947 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoneyMoon_Day4_0018.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

軟體應用 : [轉貼]用 winsw 讓任何 Windows 程序都能運行為服務

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]用 winsw 讓任何 Windows 程序都能運行為服務

用winsw讓任何Windows程序都能運行為服務

winsw介紹

有時候我們需要在Windows下開機運行某些程序,這對於有圖形界面的程序來說一般不是什麼事,在選項中選中開機啟動,然後它們就可以自動運行了。但是如果我們想運行一些命令行程序的話就沒這麼方便了。

原來我的做法是寫一個bat腳本,然後將它的快捷方式複製到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,這樣就可以開機自啟了。不過這種方式有一個非常大的缺點,就是開機之後會顯示一個命令行窗口!而且這個窗口還不能關,一關程序就停了。

其實Windows自帶了一個後台程序管理的功能,就是我們經常用到的服務。但是Windows的服務只有程序的開發者在寫程序的時候引用到這個功能,我們才能利用服務來控制程序的啟動和關閉。對於一般的命令行程序來說,沒辦法利用服務。所以今天我們就來使用一下標題的這個 winsw。它可以將Windows上的任何一個程序註冊為服務,如果不需要,也可以方便的卸載服務。

使用winsw

下載

首先要下載winsw。它是一個單個的可執行文件,我們到 Github release這裡就可以下載winsw了。一般來說當然是下載最新的。winsw可以運行在.NET2和.NET4兩個版本上,當然如果使用Win10等比較新的系統,最好下載更新版本的.NET。

下載完之後最好把文件改成一個比較短小的名字,例如
winsw.exe這樣的,方便後面輸入命令。

編寫配置文件

我們需要編寫一個和程序同名的XML文件作為winsw的配置文件。文件大體上長這樣,這是官網的例子。


    <service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
<logmode>rotate</logmode>
</service>

看到XML的標籤名,我想大家也能猜到這些參數是幹嘛的,所以我就不介紹了。下面是我的一個配置文件例子。


<service>
<id>kcp</id>
<name>kcp</name>
<description>這個服務用來將ss使用kcp協議加速</description>
<executable>client_windows_amd64</executable>
<arguments>-c kcp-config.json</arguments>
<logmode>reset</logmode>
</service>

註冊服務


編寫好配置文件之後,記得把配置文件和可執行文件放在一起,這樣winsw才能正確識別配置文件。然後我們打開一個管理員權限的命令提示符或Powershell窗口,然後輸入下面的命令,如果返回值為0,說明已將程序註冊為服務。


winsw install

然後打開Windows的服務,我們可以看到這下已經出現了註冊的服務,我們可以像一般服務那樣開啟、關閉它。

服務

如果不再需要這個服務,使用 winsw uninstall即可卸載服務。當然還有諸如 startstop這樣的命令啟動和關閉服務。更重要的是,沒有那個既不美觀又煩人的命令提示符窗口。


原文出處:用winsw让任何Windows程序都能运行为服务 - 简书
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]在 windows 下用 winsw 把 nginx 當成服務運行
在windows下用winsw把nginx當成服務運行

1. 下載winsw
https://github.com/kohsuke/winsw/releases

2. 配置winsw.xml,把winsw放在nginx同一目錄
    <configuration>
      <id>nginx</id>
      <name>nginx</name>
      <description>nginx</description>
      <executable>%BASE%/nginx.exe</executable>
      <stopexecutable>%BASE%/nginx.exe -s stop</stopexecutable>
      <logpath>%BASE%/logs/</logpath>
      <logmode>roll</logmode>
      <depend></depend>
    </configuration>

3.安裝,以管理員身份啟動cmd
  winsw install
  winsw uninstall //卸載

4.啟動、關閉服務
  net start nginx
  net stop nginx


原文出處:在windows下用winsw把nginx当成服务运行 - Freewind的专栏 - CSDN博客
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]使用 winsw 將 nginx 作為 windows 服務啟動
使用 winsw 將 nginx 作為 windows 服務啟動

用到的工具 https://github.com/kohsuke/winsw

下載,扔到nginx目錄,改名字nginxd.exe,新建一個同名的nginxd.xml文件,照下面的xml配好。

進入exe文件目錄
nginxd install

nginxd start

nginxd stop

nginxd uninstall

網上寫的配置都不太對,參考這個改造如下 https://github.com/kohsuke/winsw/issues/89

目前這個程序只支持單一參數,因此多個參數要拆開寫
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>C:\soft\nginx-1.9.10\nginx.exe</executable>
<logpath>C:\soft\nginx-1.9.10\</logpath>
<logmode>roll</logmode>
<depend></depend>
<stopexecutable>C:\soft\nginx-1.9.10\nginx.exe</stopexecutable>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>

c 2016, 新之助meow. 原創文章轉載請註明: 轉載自http://www.xinmeow.com

原文出處:使用 winsw 将 nginx 作为windows服务启动 – 新之助meow
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]冷日的 winsw for NGINX Config
冷日的 winsw for NGINX Config,供參!
<configuration>
	<id>nginx</id>
	<name>NGINX</name>
	<description>NGINX Windows Server(Reverse Proxy Server)</description>
	<executable>C:\Nginx\nginx.exe</executable>
	<logpath>C:\Nginx\logs</logpath>
	<stopexecutable>C:\Nginx\nginx.exe</stopexecutable>
	<stopargument>-s</stopargument>
	<stopargument>stop</stopargument>
	<restartpexecutable>C:\Nginx\nginx.exe</restartpexecutable>
	<restartpargument>-s</restartpargument>
	<restartpargument>reload</restartpargument>
	<logmode>roll</logmode>
	<depend></depend>
</configuration>
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|