簡體   English   中英

如何使用一條命令同時啟動多個 Windows 服務?

[英]How do I start multiple Windows Services at once, with one command?

我用於編程的主要計算機與我用於游戲等的計算機相同。因此,為了在游戲時提高速度,我從啟動時關閉了 Apache、MySQL、Subversion 等服務,因為我大約 50/50 將其用於游戲/編程。

這在大多數情況下都很好,但單獨啟動它們有點麻煩。

有人可以告訴我如何編寫批處理文件或類似的東西來啟動所有服務嗎?

那么你可以寫一個批處理文件

net start "Service Name"

還應該有一種方法將服務依賴鏈接在一起,所以當一個啟動時,所有其他服務也會啟動。 我會看看我是否能找到開關來做到這一點。

編輯:

我沒試過這個,但這應該告訴你在注冊表中的哪里可以找到使服務相互依賴並自動啟動的服務:

http://www.softwaretipsandtricks.com/windowsxp/articles/490/1/Removing-Service-Dependencies

您還可以通過調用以下命令並行啟動服務:

SC START 服務名稱

我不知道這是否有幫助...

除非您真的知道自己在做什么,否則我不會弄亂服務的依賴關系。

啟動服務的命令是"net start <servicename> ”。 只需將您需要的那些添加到一個名為 Something.bat 的文件中並運行它。 簡單的。 :)

net stop <service name>也會停止它們。

如果你使用的是 powershell,你可以這樣做:

"service1", "service2" | %{ start-service $_ }

為了解釋上面的內容,它是這樣的:

  1. 創建一個包含“service1”和“service2”的數組
  2. 將該數組通過管道傳遞給foreach命令(這是%符號)
  3. foreach命令將運行代碼塊(由{ }分隔),“當前項目”由$_表示
  4. 因此,它將在您的數組中的每個事物上運行start-service

如果您有一個通用名稱,只需使用 powershell

啟動服務

Get-Service *pattern* | start-service

停止服務

Get-Service *pattern* | stop-service

盡管我正在研究類似的東西,但我在這方面有點晚了。

創建一個批處理文件,並在該批處理文件中使用 sc 命令:

sc 啟動“第一個服務名稱” sc 啟動“第二個服務名稱”

依此類推...保存批處理文件並雙擊運行它,或安排它相應地運行。

像提到的其他答案一樣,編寫批處理/cmd 文件會產生奇跡。

@echo off

echo Press any key to start the Services
echo ===================================

pause

echo Starting Apache
net start Apache

echo Starting MySQL
net start MySQL

echo Starting Subversion
net start Subversion

echo == Services have started ==

timeout 3
exit /b

雖然我遲到了,但這正是你所需要的。 ProgramUtilityv1我也在尋找這樣的應用程序,所以我自己寫了它。 它只適用於 Windows,也適用於 Windows Vista 及更高版本。我很快也會發布一個 linux 版本。

更簡單的方法:

  1. 安裝 ps 工具(它為開發人員提供了很多非常酷的 cmd 行工具)

  2. ps工具自帶的工具之一是PsService

  3. 您可以使用 start 和 stop 開始停止您的服務

如果你想同時啟動多個服務並等待它們啟動,你可以執行以下操作:


workflow work {
    param(
        [Parameter (Mandatory = $true)]
        [Collections.Generic.List[string]]$list)
    
    Foreach -parallel ($s in $list)
    { 
        Start-Service $s         
    }
}

$list = Get-Service -Name "servicename*" -ErrorAction SilentlyContinue | foreach{$_.DisplayName}
work -list $list

有了這個:

  • 你沒有立即回報。 如果您不關心服務啟動是否失敗,您可以使用 sc、net start 或 ps 工具選項。
  • 服務同時啟動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM