Atitit.Java exe bat 作為windows系統服務程式運行 1. 使用SC命令+srvany.exe (不錯,推薦)+net start1 1.1. First 創建一個java的運行bat1 1.2. 配置srvany 做serv wrapper1 1.3. 使用sc 創建/del
Atitit.Java exe bat 作為windows系統服務程式運行
1. 使用SC命令+srvany.exe (不錯,推薦)+net start1
1.4. 啟動start/stop服務 Sc \\127.0.0.1 start ServicenameAti22
2. 1、修改註冊表 主要有兩種方法…… 還有一個好用的命令:sc delete+服務名3
3. ava Service Wrapper (jsw )3
1. 使用SC命令+srvany.exe (不錯,推薦)+net start
1.1. First 創建一個java的運行bat
1.2. 配置srvany 做serv wrapper
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ServicenameAti2\Parameters]
"Application"="\"D:/workspace 空格/AtiPlatf/makefile.bat\""
Srvany 可用於將任何EXE程式作為Windows服務運行。也就是說srvany只是其註冊程式的服務外殼
可以接收服務的start stop命令..假如直接地使用bat exe,哪些馬實現serv介面,不能rootv serv..
作者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍, EMAIL:[email protected]
轉載請註明來源: http://www.cnblogs.com/attilax/
1.3. 使用sc 創建/del服務
先進入命令行 (開始——〉運行——輸入CMD),直接輸入SC可以查看關於該命令的幫助。
如果要刪除一個系統服務,可以使用 SC delete [服務名稱],比如刪除messager服務,輸入SC DELETE MESSAGER。
SC使用這樣的語法:
1. SC 《Servername》 command Servicename [Optionname= Optionvalue]
SC [command]
選項: 選項 <server> 的格式為 "\\ServerName"
註意: 選項名稱包括等號。
等號和值之間需要一個空格。
C:\Users\Administrator>Sc \\127.0.0.1 create ServicenameAti binPath= "D:\work
ace 空格\AtiPlatf\makefile.bat" start= auto Displayname= "DisplaynameAti"
[SC] CreateService 成功
Sc \\127.0.0.1 delete ServicenameAti
Sc \\127.0.0.1 start ServicenameAti2
Displayname 這個參數是顯示在的service管理器黑頭的..
1.4. 啟動start/stop服務 Sc \\127.0.0.1 start ServicenameAti2
C:\Users\Administrator> Sc \\127.0.0.1 start ServicenameAti2
SERVICE_NAME: ServicenameAti2
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 10308
FLAGS :
net start ServicenameAti2
net stop ServicenameAti2
But 這個不能stop whern serv stop...maybe check service start state timer...if stop then exit
2. 1、修改註冊表 主要有兩種方法…… 還有一個好用的命令:sc delete+服務名
在“開始→運行”中鍵入“regedit.exe”,打開“註冊表編輯器”,展開分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”,在右側窗格中顯示的就是本機安裝的服務項。
如果要新建服務,只須點擊“編輯→新建→項”,然後為此項命名,如“test”;然後右擊該項,選擇“新建→字元串值”或“新建→DWORD值”即可。添加一個服務項目具體需要添加的鍵值如下
“DisplayName”,字元串值,對應服務名稱;
“Description”,字元串值,對應服務描述;
“ImagePath”,字元串值,對應該服務程式所在的路徑;
“ObjectName”,字元串值,值為“LocalSystem”,表示本地登錄;
“ErrorControl”,DWORD值,值為“1”;
“Start”,DWORD值,值為2表示自動運行,值為3表示手動運行,值為4表示禁止;
“Type”,DWORD值,應用程式對應10,其它對應20。
另外,還要在“test”項下新建一個“Enum”項。按照以上步驟添加QQ程式為服務,重新啟動電腦後,打開“服務”視窗,就可以看到剛纔添加的QQ服務。
如果要刪除某項服務,只要刪除註冊表的中相關鍵值即可,本例中要刪除QQ服務,直接刪除“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test”分支即可。
3. ava Service Wrapper (jsw )
翻開JBOSS、Tomcat的發佈包,發現他們都使用了一個Open source——Java Service Wrapper。用Java Service Wrapper可以輕鬆解決我們的需求,讓我們的服務程式成為 Win32系統服務。
JSW的使用有三種方式:
1.
用WrapperSimpleApp class啟動應用程式。這是使用JSW最簡單的方式,也是推薦的方式。但使用這種方式有個問題,因為JSW是直接使用System.exit()退出 JVM的,這等如使用者在應用程式運行期間直接按ctrl-c退出程式一樣。如果應用程式在退出前需要執行clean up的話,需要自行登記shutdown hook,或不要使用這種方式。以這種方式配置JBoss的例子(Win32, Linux / UNIX)。
2.
3.
第二種方式是使用WrapperStartStopApp class。這種方式是給Tomcat之類的應用程式(即在一個類啟動,但以另一個類結束的應用程式)。通常這類的應用程式都會在啟動時打開一個 server socket,用來等待要求程式結束的連接,當接收到要求結束的請求,“結束”類會被執行。而JSW就是在收到停止運行的要求時,直接執行這個“結束” 類。以這這種方式配置Tomcat的例子(Win32, Linux / UNIX)。
4.
5.
第三種方式,也是最複雜,最靈活的一種方式,也是唯一一種需要編程的方式。這種方式要寫一個實現WrapperListener介面的類。有些功能 是這種方式獨有的,例如直接在程式中接收及回應系統控制事件(如啟動及結束)。但這也增加了程式的複雜程度。如果不需要這些功能的話,還是使用第一種方式 比較方便。以這種方式配置的例子。
缺點,貌似只能對java程式設置,應該也可以設置bat文件。但可能比較麻煩
4. JavaService
5.
6. 參考
java程式在windows系統作為服務程式運行 - 快樂就好 - 博客園.htm
新建系統服務 在WINDOWS下安裝自定義的服務項-3492zhang-ITPUB博客.htm
atitit.添加win 系統服務 bat批處理程式服務的法總結instsrv srvany java linux - attilax的專欄 - 博客頻道 - CSDN.NET.htm
paip.註冊java程式為LINUX系統服務的總結。 - attilax的專欄 - 博客頻道 - CSDN.NET.htm