A zase problém. Sem tam je třeba zastavit službu z nějakého důvodu. Jednoduše si v konzoli klikneme na stop a služba se nám zastaví, pokud je všechno v pořádku. Jenomže ouha, ne vždy se nám podaří služba bez problémů zastavit. Klikneme na stop a služba je stopping a stopping a stále stopping, jsou deaktivované tlačítka jak start tak i stop a restart a situace je vážná.
Za předpokladu, že pracujem na serveru Windows 2003 máme k dispozici silné nástroje příkazové řádky. Příkazem:
sc queryex
si můžeme vypsat seznam všech služeb a jejich stav. Za předpokladu, že známe název služby můžeme název uvést jako další argument, například:
sc query OracleOraHome92Agent
tímto příkazem získáme detailní informace o službě:
SERVICE_NAME: OracleOraHome92Agent
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x1388
PID : 1324
FLAGS :
Jak je vidět na výpise, stav služby je stop pending a zdá se že tak brzy neskončí. Nyní ale, již známe PID naší neposlužné služby a můžeme ji, pokud zvážíme všechny následky, zabít (stejně jako
Kennyho):
taskkill /PID 1324 /F
Jak říká nápověda (taskkill /?) právě parametrem /F vynutíme ukončení služby i když neodpovídá.