Event ID 70004 SCM: сбой возобновления (Resume) службы Windows
Симптомы сбоя возобновления службы (Event ID 70004)
В системном журнале System фиксируется ошибка: Event ID 70004: The Service Control Manager encountered an error while resuming the [Имя_Службы] service от источника Service Control Manager.
| Симптом | Проявление |
|---|---|
| Служба зависла в статусе «Continue_Pending» или «Paused» | Приложение не возвращается в активное рабочее состояние |
| Отказ обработки запросов | Клиенты продолжают получать ошибки «Сервис временно недоступен» |
| Игнорирование системных сигналов | Служба перестает отвечать на последующие команды остановки или проверки статуса |
Пошаговое устранение сбоя возобновления (Event ID 70004)
- Проверьте текущий точный статус службы через утилиту sc:
# Проверка статуса службы и кода состояния SCM:
$serviceName = "ИмяСлужбы"
sc.exe queryex $serviceName- Принудительно перезапустите рабочий процесс службы: если процесс вошел в состояние взаимоблокировки (Deadlock) при попытке возобновить работу потоков:
# Завершение зависшего процесса службы по имени:
Stop-Process -Id (Get-CimInstance Win32_Service -Filter "Name='$serviceName'").ProcessId -Force
# Ожидание 3 секунды и чистый старт службы:
Start-Sleep -Seconds 3
Start-Service -Name $serviceName- Проверьте доступность зависимых ресурсов: убедитесь, что пока служба находилась на паузе, сетевые подключения к базам данных, сетевым дискам или сокетам не были закрыты по таймауту со стороны удаленных хостов.
Совет: Вместо использования цикла команд Pause-Service / Resume-Service в скриптах регламентного обслуживания безопаснее использовать полную контролируемую остановку и запуск службы: Stop-Service / Start-Service.
Частые вопросы (FAQ)
Какая команда возобновляет работу приостановленной службы?
В PowerShell используется командлет Resume-Service -Name <ИмяСлужбы>, а в классической командной строке — sc.exe continue <ИмяСлужбы>.
Почему при возобновлении службы возникает Deadlock?
Потоки приложения пытаются заново заблокировать системные мьютексы и сокеты, которые были освобождены или перехвачены другими процессами за время паузы.
Можно ли предотвратить автоматическую постановку служб на паузу?
Службы никогда не встают на паузу самостоятельно — это действие всегда является результатом внешней команды администратора, скрипта или системы резервного копирования (VSS/Backup Agent).
Где посмотреть логи внутренних потоков службы при сбое?
В специализированном журнале самого приложения (например, в каталоге C:\Program Files\[Приложение]\Logs или журнале Application).