2017-08-16 50 views
0

我已經創建了一個小腳本文件來測試。無法使用NSSM在窗口10中啓動服務

這是我的script.bat文件。

sc create myService binpath= C:\Users\Admin\Desktop\test.bat start= auto 

這是我test.bat的文件。

echo "Welcome to Wizard" 

問題陳述

我無法從控制面板服務節啓動該服務。

我得到以下錯誤。

[SC] StartService失敗1053: 該服務未及時響應啓動或控制請求。

這就是爲什麼我使用nssm。

什麼現在發生的事情是,當我運行下面的PowerShell上

命令。\ NSSM安裝爲myService,我會出現對話框。我給它的腳本文件的路徑,然後單擊安裝服務。

成功安裝服務後。我進入控制面板 - >服務 - >點擊開始對爲myService但它得到停下來,下面的對話框出現

enter image description here

  1. 我該如何解決這個問題?
  2. 是否有任何其他的方式來做到這一點,而無需手動操作,也不需要使用第三方工具。
  3. 我在窗口10上做了所有這些工作。我是否需要任何服務器來執行此任務?

注:我不能在我的情況下使用Always up或window scheduler。

+0

可能是因爲您的腳本立即退出。你爲「退出行動」配置了什麼? –

+0

@HarryJohnston我還沒有配置任何東西,我只是想創建一個基本的文件,因爲我是批處理腳本中的新成員,但將來我想運行logstash作爲後臺服務。 –

+0

您是否看到有關需要使用特定版本的Windows 10用戶的評論?:https://nssm.cc/download - 「Windows 10創作者更新 2017-04-26:Windows 10創作者更新的用戶應該使用爲了避免服務無法啓動的問題,如果由於某種原因您不能使用該版本,您還可以在註冊表中設置AppNoConsole = 1,注意期望控制檯窗口的應用程序可能會出現意外情況。 – andyb

回答

1

NSSM行爲是由腳本幾乎立即終止引起的。試試下面的腳本:

echo Hello World pause

這應使服務能夠啓動,但你不一定會看到一個控制檯窗口。即使您勾選'允許服務與桌面互動',它也不會與您的桌面互動!

Windows實施「會話零隔離」作爲安全功能,這基本上阻止了服務與終端用戶桌面的交互。

就解決方案而言,可以使用Visual Studio很簡單地編寫Windows'服務'應用程序。它不在我的專業領域,但基於我熟悉的Windows應用程序,您通常會運行一個用戶模式應用程序來提供桌面交互。用戶模式應用程序可以與服務應用程序託管的服務進行交互。

+0

我已經添加了暫停語句,但行爲相同:(我也試圖運行exe文件而不是蝙蝠,但問題仍然是相同的。對於在VS中開發服務,現在沒有選項,我會看到你給我的鏈接 –

+0

通過從Windows資源管理器啓動批處理文件(雙擊它),驗證批處理文件的行爲是否符合預期,您應該看到一個控制檯窗口,顯示消息,然後按提示按鈕按一個鍵,控制檯窗口將關閉 – andyb

+0

當我按下某個鍵時,我添加了一個回顯的批處理文件打開和關閉,但是我正在創建服務的文件沒有打開(腳本。 bat)sc創建myService binpath = C:\ Users \ Admin \ Desktop \ test.bat start = auto –