# Setup Task Scheduler (Windows) - Instructions Détaillées **Option recommandée** pour lancer le daily check automatiquement au boot Windows et 3x par jour. --- ## Prérequis - Windows 10/11 - WSL installé et configuré - jq installé dans WSL : `sudo apt install jq` --- ## Étape 1 : Ouvrir Task Scheduler 1. Appuie sur `Win + R` 2. Tape `taskschd.msc` 3. Appuie sur `Enter` OU 1. Recherche "Task Scheduler" dans le menu démarrer 2. Ouvre l'application --- ## Étape 2 : Créer une Nouvelle Tâche 1. Dans le panneau de droite, clique sur **"Create Task..."** (pas "Create Basic Task") 2. Cela ouvre une fenêtre avec plusieurs onglets --- ## Étape 3 : Onglet "General" **Name** : `Daily Check Trigger` **Description** : `Système de daily check automatique - Lance trigger 3x par jour` **Security options** : - ✅ Coche "Run whether user is logged on or not" - ✅ Coche "Run with highest privileges" **Configure for** : `Windows 10` (ou ta version Windows) --- ## Étape 4 : Onglet "Triggers" Clique sur **"New..."** et configure **3 triggers** (un par période de la journée) : ### Trigger 1 : Morning (07:00) - **Begin the task** : `On a schedule` - **Settings** : `Daily` - **Start** : Aujourd'hui à `07:00:00` - **Recur every** : `1 days` - ✅ **Enabled** Clique **OK** ### Trigger 2 : Afternoon (14:00) - Clique à nouveau sur **"New..."** - **Begin the task** : `On a schedule` - **Settings** : `Daily` - **Start** : Aujourd'hui à `14:00:00` - **Recur every** : `1 days` - ✅ **Enabled** Clique **OK** ### Trigger 3 : Evening (21:00) - Clique à nouveau sur **"New..."** - **Begin the task** : `On a schedule` - **Settings** : `Daily` - **Start** : Aujourd'hui à `21:00:00` - **Recur every** : `1 days` - ✅ **Enabled** Clique **OK** --- ## Étape 5 : Onglet "Actions" Clique sur **"New..."** **Action** : `Start a program` **Program/script** : ``` wsl ``` **Add arguments** : ``` -e bash -c "cd '/mnt/e/Users/Alexis Trouvé/Documents/Projets/couple_matters/daily_check' && ./trigger_check.sh" ``` **Note** : Assure-toi que le chemin est correct pour ton système. Clique **OK** --- ## Étape 6 : Onglet "Conditions" **Power** : - ❌ **Décoche** "Start the task only if the computer is on AC power" - ✅ **Coche** "Wake the computer to run this task" (si tu veux que ça réveille le PC) **Network** : - Laisse par défaut (pas nécessaire pour ce task) --- ## Étape 7 : Onglet "Settings" - ✅ **Coche** "Allow task to be run on demand" - ✅ **Coche** "Run task as soon as possible after a scheduled start is missed" - ✅ **Coche** "If the task fails, restart every:" `10 minutes` (pour robustesse) - **Stop the task if it runs longer than** : `30 minutes` --- ## Étape 8 : Sauvegarder 1. Clique **OK** en bas de la fenêtre 2. Windows va te demander ton mot de passe utilisateur → Entre-le 3. La tâche est maintenant créée ! --- ## Étape 9 : Tester Immédiatement 1. Dans Task Scheduler, trouve ta tâche "Daily Check Trigger" dans la liste 2. Clique-droit dessus 3. Clique **"Run"** Cela devrait : - Exécuter `trigger_check.sh` - Créer le flag file `~/.daily_check_pending` - Logger dans `daily_check/daily_check.log` Vérifie : ```bash cat ~/daily_check/daily_check.log ls -la ~/.daily_check_pending ``` --- ## Troubleshooting ### La tâche n'apparaît pas dans "Task Scheduler Library" - Va dans **Task Scheduler Library** (panneau gauche) - Rafraîchis la vue (F5) ### La tâche échoue avec "The system cannot find the file specified" - Vérifie que WSL est bien installé : ouvre cmd et tape `wsl --version` - Vérifie que le chemin dans "Arguments" est correct ### Le script ne se lance pas - Vérifie que `trigger_check.sh` est exécutable : `chmod +x trigger_check.sh` - Vérifie que jq est installé : `jq --version` - Regarde les logs : `cat daily_check/daily_check.log` ### La tâche ne se lance pas au bon moment - Vérifie les triggers dans Task Scheduler - Assure-toi que "Enabled" est coché pour chaque trigger - Vérifie que l'heure système Windows est correcte ### Permission denied - Assure-toi que la tâche est configurée avec "Run with highest privileges" --- ## Désactiver Temporairement Si tu veux désactiver le système sans supprimer la tâche : 1. Ouvre Task Scheduler 2. Trouve "Daily Check Trigger" 3. Clique-droit → **Disable** Pour réactiver : Clique-droit → **Enable** --- ## Supprimer la Tâche 1. Ouvre Task Scheduler 2. Trouve "Daily Check Trigger" 3. Clique-droit → **Delete** --- ## Notes Importantes - Cette tâche va créer un flag file `~/.daily_check_pending` - Le flag file déclenche l'auto-spawn quand tu ouvres un terminal WSL - Le système ne te spam PAS si tu ignores → Il attend juste que tu ouvres un terminal - Si tu fais déjà le daily check manuellement, le trigger ne créera pas de flag (détecte via `.state.json`) --- **Setup terminé !** Le système est maintenant actif et se lancera automatiquement 3x par jour.