6

У меня произошел сбой веб-сервера, который я мог бы отключить с помощью следующей команды:

net stop https-myWebserver

Однако я получаю следующую ошибку (в Windows 7 64-разрядная версия):

Служба запускается или останавливается. Пожалуйста, попробуйте позже.

Как я могу заставить службу немедленно остановиться / выйти? Я надеюсь избежать перезапуска сервера.

4 ответа4

9

Вы должны быть в состоянии убить его через диспетчер задач.

Right-click on taskbar -> Start Task Manager

Если вы можете найти его на вкладке Процессы:

Right click and select "End Process"

Если вы не видите его в разделе «Процессы» (или не знаете, какой процесс для службы вы хотите убить),

Пока на вкладке Процессы

Check "Show processes from all users" in the lower left 
Then "View" menu and choose "Select Columns"
Check "PID" and hit OK
Go to the services tab to find the PID of the service you want to kill
Go back to Processes tab and Right-click -> End Process
1

Вам нужно найти PID для сервиса, а затем убить его.
Используйте эту команду, чтобы найти PID:

tasklist /FI "services eq https-myWebserver"

И когда у вас есть номер PID, убейте процесс из диспетчера задач или с помощью taskkill.

Полная информация здесь: http://www.itprostuff.com/articles/find-pid-service.html

0

Если у вас есть инфраструктура управления Windows 3.0 (powershell 3) или более поздняя версия, приведите однострочную версию Powershell.

Stop-Service -Name "https-myWebserver" -Force

Существуют также команды Start-Service и Restart-Service, однако команда Start-Service не имеет ключа -force, поскольку он не нужен.

0

Расширенная функция Powershell из блога Майка Роббинса

function Stop-PendingService {
<#
.SYNOPSIS
    Stops one or more services that is in a state of 'stop pending'.
.DESCRIPTION
     Stop-PendingService is a function that is designed to stop any service
     that is hung in the 'stop pending' state. This is accomplished by forcibly
     stopping the hung services underlying process.
.EXAMPLE
     Stop-PendingService
.NOTES
    Author:  Mike F Robbins
    Website: http://mikefrobbins.com
    Twitter: @mikefrobbins
#>
    $Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
    if ($Services) {
        foreach ($service in $Services) {
            try {
                Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
            }
            catch {
                Write-Warning -Message "Unexpected Error. Error details: $_.Exception.Message"
            }
        }
    }
    else {
        Write-Output "There are currently no services with a status of 'Stopping'."
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .