Comment connaître simplement l’état d’un service ?
Est-il possible d’arrêter et de démarrer un service avec une requête ?
La procédure stockée système étendue non documentée xp_servicecontrol permet de connaître l’état d’un service :
EXEC master.dbo.xp_servicecontrol 'QUERYSTATE', 'MSSQLServer'
Retourne bien sûr :
mais peut retourner les états suivants :
1 2 3 4 5 6 | - "Stopped." - "Running." - "Stopping." - "Starting." - "Unknown." - "ErrorRetrieving." |
On peut aussi démarrer un service :
EXEC master.dbo.xp_servicecontrol 'START', 'MSSQLServer'
ou encore l’arrêter :
EXEC master.dbo.xp_servicecontrol 'STOP', 'MSSQLServer'
Il peut être pratique de connaître l’état de services par ce biais, lorsque l’on administre une instance de SQL Server avec l’utilitaire en ligne de commande SQLCMD (ancien OSQL) et une connexion DAC, ou encore encapsuler ce résultat dans un rapport SSRS sur l’état d’un serveur et de ses applications …
ElSuket