Comment démarrer Cron automatiquement dans WSL sous Windows 10 et 11

Contenu

Une main tenant un chronomètre.

Windows a plusieurs alternatives pour automatiser les tâches. L'outil le plus courant est le planificateur de tâches Windows, mais si vous utilisez le sous-système Windows pour Linux (WSL), il y a aussi le démon cron qui exécute des tâches en arrière-plan pour votre installation WSL.

Cron ne s'exécute pas par défaut

En Windows 10 et Windows 11, cron est fourni avec des environnements Linux comme Ubuntu. Le problème est que WSL ne démarre pas automatiquement cron, ce qui signifie que vos tâches automatisées ne s'exécutent pas par défaut.

Pour résoudre ce problème, vous pouvez démarrer cron manuellement à chaque fois que vous ouvrez la ligne de commande, mais démarrer manuellement un outil censé automatiser des tâches revient à perdre connaissance.

Par chance, il existe un moyen simple de résoudre ce problème et vous devez utiliser le planificateur de tâches.

Une fenêtre de terminal Windows WSL indiquant que cron n'est pas en cours d'exécution.

Si vous n'avez jamais utilisé cron sur Linux pour exécuter des tâches, consultez notre précédent tutoriel sur la planification des tâches sous Linux. Pour nos besoins ici, nous supposerons que vous avez déjà créé des tâches cron dans votre installation WSL et que vous avez besoin d'aide pour vous assurer qu'elles s'exécutent au lieu de vous occuper de cron tout le temps.

Pour ce tuto, nous utiliserons sudo service pour vérifier et démarrer cron, qui est la méthode recommandée pour arrêter et démarrer les services dans les versions modernes d'Ubuntu, la distribution la plus populaire pour WSL.

En même temps, Veuillez noter que ce tutoriel suppose que vous disposez des droits d'administrateur sur votre version de WSL. Si vous êtes le seul utilisateur sur votre PC et que vous avez activé WSL vous-même, alors tu as les droits d'administrateur.

Conseil: Cela fonctionne également sur le sous-système Windows pour Linux sur Windows 11, pas seulement sur Windows 10.

EN RELATION: Comment planifier des tâches sous Linux: Introduction aux fichiers Crontab

Préparer Linux

La première chose que nous allons faire est de permettre à l'ordinateur de démarrer cron sans mot de passe. Lorsque vous démarrez un service comme cron, utiliser la commande sudo service cron start. Mais cette commande a besoin d'un mot de passe, auquel Windows n'aura pas accès au démarrage. Le moyen de contourner cela est de désactiver l'exigence d'un mot de passe pour cette commande.

Pour faire ça, ouvrez la fenêtre de votre terminal WSL et tapez sudo visudo. Appuyez sur Entrée sur votre clavier, entrez votre mot de passe Linux et appuyez à nouveau sur la touche Entrée. Si vous utilisez Ubuntu, cela ouvre le fichier “sudeurs” utilisation de l’éditeur de texte en ligne de commande Nano convivial pour les débutants. Sudoers est un fichier pour les administrateurs système qui peut modifier les privilèges et les droits d'accès des utilisateurs.

Ajoutez la commande suivante à la fin du fichier sudoers, puis appuyez sur Ctrl + ou pour enregistrer et Ctrl + x pour quitter le fichier.

%sudo ALL=NOPASSWD: /usr/sbin/service cron start

Cette commande sudoers indique que tout utilisateur disposant de privilèges suffisants pour utiliser la commande sudo (qui devrait t'incorporer) vous n'avez pas besoin de mot de passe pour exécuter la commande sudo service cron start, qui démarre le démon cron.

Une fois que vous avez enregistré le fichier, vous pouvez vérifier que la commande fait son travail en tapant sudo service cron start, et il devrait démarrer cron sans demander de mot de passe. Si ça a marché, désactivons à nouveau cron pour que nous puissions tester que la tâche que nous créons à l'étape suivante fonctionne correctement. Pour faire ça, s'il te plaît, cours sudo service cron stop.

Configurer Cron dans le planificateur de tâches Windows

C'est la première étape de notre cheminement vers l'automatisation cron.. Passons à la partie 2 avec le planificateur de tâches. Appuyez sur la touche Windows du clavier, puis recherchez “Planificateur de tâches”. Démarrez le raccourci du “Planificateur de tâches”.

Résultats de la recherche dans Windows 10 afficher le planificateur de tâches en option.

Quand ça commence, rechercher dans la section “Actions” et sélectionnez “Créer une tâche de base”.

Planificateur de tâches Windows 10 avec une flèche rouge pointant vers "Créer une tâche de base" option.

Cela ouvre l'assistant de tâche de base. Premier, il vous demandera de nommer la tâche et de lui donner une description. Vous pouvez entrer ce que vous voulez ici. Nous appelons aux devoirs “cron” et la description est “Une tâche pour démarrer cron au démarrage du système”. Maintenant, presse “Prochain”.

Dans la section suivante, on y va, allons-y. Premier, Windows veut savoir quand nous voulons exécuter la tâche. Choisissez la case d’option “Lorsque l’ordinateur démarre” et cliquez “Prochain”.

Un ensemble de boutons d'option dans Windows 10 avec une flèche rouge pointant vers l'option

Dans la section suivante, nous voulons “Démarrer un programme”. Cette option est sélectionnée par défaut, alors clique “Prochain”.

Options du programme Planificateur de tâches Windows 10 avec des flèches rouges pointant vers le chemin du programme et une zone de saisie de texte d'arguments supplémentaires.

Maintenant, nous devons spécifier le programme que nous voulons exécuter, qu'est-ce que le WSL. Entrez ce qui suit dans la zone de saisie de texte “Programme / Script”: C:WindowsSystem32wsl.exe

Nous devons également ajouter quelques arguments, puisque tout ce que nous avons fait jusqu'à présent est de démarrer WSL, mais au sein du WSL, nous devons dire à Ubuntu de démarrer cron. Ensuite, dans le cadre “Ajouter des arguments”, ajouter: sudo /usr/sbin/service cron start

Fenêtre de création de la tâche finale du planificateur de tâches Windows 10 avec une flèche rouge pointant vers l'option pour ouvrir la fenêtre des propriétés de la tâche à la fin.

presse “Prochain” une fois de plus, cochez la case qui dit “Ouvrir la boîte de dialogue des propriétés lorsque je clique sur Terminer” puis cliquez sur “Finaliser”.

Une fenêtre de propriétés de tâche Windows avec une flèche rouge pointant vers l'option

La tâche est créée, mais nous devons faire une dernière chose pour nous assurer que tout fonctionne. Une nouvelle fenêtre s'ouvrira, qui affiche le résumé de la tâche que vous avez créée, mais il n'est configuré pour s'exécuter que lorsqu'il est connecté. Nous devons choisir le bouton radio qui dit “Exécuter si l’utilisateur est connecté ou non” puis appuyez sur “Accepter”.

Maintenant, Testons notre tâche de deux manières. Premier, dans la fenêtre principale du Planificateur de tâches, faites défiler jusqu'à ce que vous voyiez le nom de votre tâche. Si vous avez utilisé le nom “cron”, devrait être en haut de la liste. Cliquez avec le bouton droit sur la tâche et sélectionnez “Courir”.

Une fenêtre de terminal montrant que cron est en cours d'exécution.

Ensuite, retournez sur votre terminal WSL et tapez sudo service cron status, et il devrait dire que cron est en cours d'exécution. Si ce n'est pas comme ça, vérifiez que vous avez tout saisi correctement dans les étapes ci-dessus.

Si tout a fonctionné correctement au premier contrôle, c'est l'heure du grand test. Redémarrez votre PC et, lorsque vous revenez, ouvrez un terminal WSL et exécutez sudo service cron status, qui devrait signaler que cron est maintenant en cours d'exécution.

Toutes nos félicitations! Vous avez fait votre premier pas vers un monde automatisé plus grand. Avec cron en arrière-plan, les tâches cron que vous avez configurées dans WSL s'exécuteront automatiquement comme prévu.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.