將批次檔註冊成服務在系統啟動的時候自動調用_DOS/BAT

來源:互聯網
上載者:User
前兩天完成了將java程式註冊成win服務,如今本人有一個java工程起重含有啟動指令碼startagent.bat.我想要達到的效果是:當系統啟動的時候就自動調用startagent.bat指令碼,於是開始網上尋求相關資料。

  1、首先由師兄提示可以使用系統命令sc實現

  sc create 服務名 binPath= .bat檔案所在路徑 start=auto

  (注意 =後面有空格,如果檔案路徑中含空格則使用引號引起來)

  具體的參數可以使用sc /?來查看。

  安裝倒是挺順利,管理/服務中出現了新安裝的服務,但是啟動的時候報錯:

  "在本機電腦無法啟動server服務,錯誤5:拒絕訪問"

  刪除服務的時候使用

  sc delete 服務名

  報錯:"xxx服務已標記為刪除"

  重新安裝報錯:

  "錯誤1053:服務沒有及時響應啟動或控制請求"

  嘗試未果,又逢有網友說這種方式行不通,要想作為服務啟動。bat檔案得符合msdn上規定的特定格式的。

  --------------嘗試新的方案--------------

  採用instsrv.exe /srvany.exe

  用instsrv.exe /srvany.exe 註冊windows 服務方法:

  1. 註冊服務: x:/xxx/instsrv 服務名 x:/xxx/srvany.exe(注意得使用"/")

  -------- 將srvany.exe 註冊成系統服務

  2. regedit開啟註冊表

  3. 進入HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/服務名

  4. 右鍵-建立-項 填入 Parameters

  5. 開啟Parameters,右鍵-建立-字串值 Application

  6. 雙擊Application 填入 應用程式的絕對路徑,如: E:/jboss-4.0.5.GA/bin/starteos.bat

  7. 右鍵-建立-字串值AppDirectory

  8. 雙擊AppDirectory 填入 應用程式的工作目錄,如: E:/jboss-4.0.5.GA/bin

  ----------- 通過srvany.exe 啟動註冊表中定義的。exe 應用

  9. 啟動服務。

  (注意: 7與8不可或缺)

  在windows 服務管理員中看到定義的服務…

  問題時解決了, 然而出現了奇怪的2幕:

  A、 在服務中啟動、關閉服務似乎無效,只有重啟才會生效

  B、 設定檔每次都被還原了?(估計是源自自己的一次小修改,待查明… … )

  最終通過重建才解決B問題的, 為什麼呢? 我的修改?… …

  刪除一個自訂的服務呢?

  如果你要卸載一個本地服務,可以通過命令列輸入如下命令

  sc delete ServiceName

  或者在直接修改註冊表

  在 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 中刪除相應的索引值。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.