Configuration et exécution de JsN
Exécution
JsN.exe <chemin_vers_config.json>
Exemples :
JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json
Format de configuration JSON
{
"scriptfile": "./mon_script.js",
"arg": {
"key1": "valeur1",
"key2": 42,
"key3": true,
"nested": {
"sub": "valeur"
}
}
}
| Champ | Type | Description |
|---|---|---|
scriptfile |
chaîne | Chemin vers le fichier JS (relatif au dossier de configuration ou absolu) |
arg |
objet | Données arbitraires disponibles dans le script sous le nom arg |
Accéder à arg dans un script
Tout le contenu de "arg" est passé en JS en tant qu'objet global arg :
Configuration :
{
"scriptfile": "./run.js",
"arg": {
"host": "smtp.office365.com",
"port": 587,
"recipients": ["admin@example.com", "ops@example.com"],
"debug": false
}
}
Script run.js :
console.log(arg.host); // "smtp.office365.com"
console.log(arg.port); // 587
console.log(arg.recipients[0]); // "admin@example.com"
console.log(arg.debug); // false
Chemins dans scriptfile
Le chemin dans scriptfile peut être :
| Format | Exemple | Comportement |
|---|---|---|
| Relatif | "./script.js" |
Relatif au dossier de configuration |
| Absolu | "C:\\scripts\\run.js" |
Chemin absolu |
Recommandation : Gardez la configuration et le script dans le même dossier et utilisez
"./script.js".
Structure de projet
Organisation de fichiers recommandée :
mon-projet/
├── config.json ← configuration (passée à JsN.exe)
├── script.js ← script principal
└── lib/
└── helpers.js ← fonctions d'aide (si nécessaire)
Configurations multiples pour différentes tâches
Vous pouvez avoir plusieurs configurations pour un même script avec des paramètres différents :
monitor/
├── monitor.js ← script partagé
├── monitor-production.json ← configuration pour la production
└── monitor-staging.json ← configuration pour le staging
monitor-production.json :
{
"scriptfile": "./monitor.js",
"arg": {
"service": "MyApp_Production",
"process": "myapp.exe",
"notify_url": "https://hooks.slack.com/services/PROD/..."
}
}
monitor-staging.json :
{
"scriptfile": "./monitor.js",
"arg": {
"service": "MyApp_Staging",
"process": "myapp.exe",
"notify_url": "https://hooks.slack.com/services/STAG/..."
}
}
Exécution planifiée (Planificateur de tâches)
Pour une exécution périodique, utilisez le Planificateur de tâches Windows :
- Ouvrez le Planificateur de tâches (
taskschd.msc) - Créez une tâche → Actions → Nouvelle
- Programme :
C:\tools\JsN\JsN.exe - Arguments :
C:\scripts\monitor\config.json - Configurez le déclencheur (toutes les N minutes, au démarrage, etc.)
Ou via PowerShell :
$action = New-ScheduledTaskAction `
-Execute "C:\tools\JsN\JsN.exe" `
-Argument "C:\scripts\monitor\config.json"
$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -Once -At (Get-Date)
Register-ScheduledTask -TaskName "JsN-Monitor" -Action $action -Trigger $trigger -RunLevel Highest
Exécution en tant qu'administrateur
Les fonctions svc_* nécessitent des privilèges d'administrateur. Méthodes d'exécution :
Via un raccourci : Clic droit → Exécuter en tant qu'administrateur.
Via le Planificateur de tâches : Lors de la création de la tâche → Exécuter avec les privilèges les plus élevés.
Via PowerShell :
Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs
Codes de sortie de JsN.exe
| Code | Signification |
|---|---|
0 |
Script exécuté avec succès |
1 |
Échec du chargement de la configuration ou du fichier JS |