API : Services Windows
Fonctions pour obtenir le statut, démarrer, arrêter et redémarrer les services Windows.
Enregistrement C++ : regService(js).
Nécessite que JsN.exe soit exécuté en tant qu'administrateur.
États de service possibles
État (state) |
Code (code) |
Description |
|---|---|---|
"running" |
4 | Le service est en cours d'exécution |
"stopped" |
1 | Le service est arrêté |
"start_pending" |
2 | Démarrage en cours |
"stop_pending" |
3 | Arrêt en cours |
"paused" |
7 | Service en pause |
"pause_pending" |
6 | Transition vers la pause |
"continue_pending" |
5 | Reprise en cours |
"unknown" |
— | État inconnu |
svc_status
svc_status(name: string) → object
Obtient l'état actuel d'un service.
Paramètres :
| Paramètre | Type | Description |
|---|---|---|
name |
string | Nom système du service (pas le nom d'affichage) |
Résultat :
| Champ | Type | Description |
|---|---|---|
state |
string | État du tableau ci-dessus |
code |
number | Code numérique SERVICE_* (1–7) |
pid |
number | PID du processus du service (0 si non exécuté) |
error |
string | Message d'erreur ou "" |
Exemple :
let s = svc_status("MyService");
if (s.error) {
console.log("Erreur :", s.error);
} else {
console.log("État :", s.state); // "running"
console.log("PID :", s.pid); // 4321
}
svc_start
svc_start(name: string) → object
Démarre un service.
Paramètres :
| Paramètre | Type | Description |
|---|---|---|
name |
string | Nom système du service |
Résultat :
| Champ | Type | Description |
|---|---|---|
ok |
bool | true — commande de démarrage envoyée avec succès |
error |
string | Message d'erreur ou "" |
Exemple :
let r = svc_start("MyService");
if (r.ok) {
console.log("Le service démarre");
} else {
console.log("Erreur de démarrage :", r.error);
}
svc_stop
svc_stop(name: string) → object
Arrête un service.
Paramètres :
| Paramètre | Type | Description |
|---|---|---|
name |
string | Nom système du service |
Résultat :
| Champ | Type | Description |
|---|---|---|
ok |
bool | true — commande d'arrêt envoyée avec succès |
error |
string | Message d'erreur ou "" |
Exemple :
let r = svc_stop("MyService");
if (r.ok) {
console.log("Le service s'arrête");
} else {
console.log("Erreur d'arrêt :", r.error);
}
svc_restart
svc_restart(name: string) → object
Redémarre un service : arrêt → attente de la fin (jusqu'à 15 sec) → démarrage.
Paramètres :
| Paramètre | Type | Description |
|---|---|---|
name |
string | Nom système du service |
Résultat :
| Champ | Type | Description |
|---|---|---|
ok |
bool | true — service redémarré avec succès |
error |
string | Message d'erreur ou "" |
Exemple :
let r = svc_restart("MyService");
if (r.ok) {
console.log("Service redémarré");
} else {
console.log("Erreur de redémarrage :", r.error);
}
Exemple complet : vérification d'état et redémarrage automatique
let svcName = "MyService";
// Vérifier l'état
let s = svc_status(svcName);
if (s.error) {
console.log("[ERREUR] Échec de l'obtention du statut :", s.error);
} else if (s.state === "stopped") {
console.log("[ALERTE] Le service est arrêté, démarrage...");
let r = svc_start(svcName);
console.log("Résultat :", r.ok ? "OK" : r.error);
} else if (s.state === "running") {
console.log("[OK] Le service est en cours d'exécution, PID :", s.pid);
// Vérifier si le processus répond
let alive = proc_alive(s.pid);
if (!alive.responding) {
console.log("[ALERTE] Le processus est bloqué, redémarrage du service...");
let r = svc_restart(svcName);
console.log("Redémarrage :", r.ok ? "OK" : r.error);
}
} else {
console.log("[INFO] État :", s.state);
}
Comment trouver le nom système d'un service
Le nom système (pas le nom d'affichage) peut être trouvé :
- PowerShell :
Get-Service | Where-Object { $_.DisplayName -like "*MyApp*" } | Select-Object Name - Gestionnaire des tâches : Onglet Services → Colonne Nom
- services.msc : clic droit → Propriétés → Champ Nom du service