Comment lancer Cron automatiquement dans WSL sous Windows 10 et 11

0
167
Milliards de photos/Shutterstock.com

Windows a plusieurs façons d'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 existe également le démon cron qui exécute les tâches en arrière-plan pour votre installation WSL.

Cron n'est pas exécuté par défaut

Sous Windows 10 et Windows 11, cron est inclus avec les environnements Linux comme Ubuntu. Le problème est que WSL ne démarre pas cron automatiquement, ce qui signifie que vos tâches automatisées ne sont pas exécutées par défaut.

Pour résoudre ce problème, vous pouvez démarrer cron manuellement chaque fois que vous ouvrez le ligne de commande, mais démarrer manuellement un outil censé automatiser les tâches est en quelque sorte hors de propos.

Heureusement, il existe un moyen simple de résoudre ce problème, et cela nécessite d'utiliser le Planificateur de tâches.

Si vous n'avez jamais utilisé cron sous Linux pour exécuter des tâches, consultez notre précédent didacticiel sur la façon de planifier des tâches sous Linux. Pour nos besoins ici, nous allons supposer 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 garder cron tout le temps.

Publicité

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

Notez également que ce didacticiel suppose que vous disposez des droits d'administrateur sur votre version de WSL. Si vous êtes le seul utilisateur de votre PC et que vous avez activé WSL vous-même, vous disposez des droits d'administrateur.

Conseil : Cela fonctionne dans le sous-système Windows pour Linux sous Windows 11, aussi—pas seulement sous Windows 10.

CONNEXION : Comment planifier des tâches sous Linux : Introduction à Crontab Fichiers

Préparer Linux

La première chose que nous devons faire est de permettre à l'ordinateur de démarrer cron sans mot de passe. Lorsque vous démarrez un service comme cron, vous utilisez la commande sudo service cron start. Mais cette commande nécessite 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 ce faire, 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 “sudoers” à l'aide 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 au bas du fichier sudoers, puis appuyez sur Ctrl+o 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 vous inclure) n'a pas besoin de mot de passe pour exécuter la commande sudo service cron start, qui démarre le démon cron.

Après avoir 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 cela a fonctionné, désactivons à nouveau cron afin que nous puissions tester que la tâche que nous créons à l'étape suivante fonctionne correctement. Pour ce faire, veuillez exécuter sudo service cron stop.

Configurer Cron dans le planificateur de tâches Windows

C'est la première phase 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.” Lancez le “Planificateur de tâches” raccourci.

Quand il démarre, regardez sous les “Actions” et sélectionnez “Créer une tâche de base.”

Cela ouvre la Assistant de tâche de base. Tout d'abord, il va vous demander de nommer la tâche et de lui donner une description. Vous pouvez entrer ce que vous voulez ici. Nous avons appelé la tâche “cron,” et la description est, “Une tâche pour démarrer cron au démarrage du système.” Maintenant, appuyez sur “Suivant.”

Dans la section suivante, nous passons aux choses sérieuses. Tout d'abord, Windows veut savoir quand nous voulons exécuter la tâche. Choisissez l'option “Au démarrage de l'ordinateur” bouton radio et cliquez sur “Suivant.”

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

Publicité< br>

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

Nous devons également ajouter quelques arguments, car tout ce que nous avons fait jusqu'à présent est de démarrer WSL, mais à l'intérieur de WSL, nous devons dites à Ubuntu de démarrer cron. Ainsi, dans le champ “Ajouter des arguments” box, ajoutez : sudo /usr/sbin/service cron start

Appuyez sur “Suivant” une fois de plus, cochez la case indiquant “Ouvrir la boîte de dialogue Propriétés lorsque je clique sur Terminer” puis cliquez sur “Terminer.”

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 affichera le résumé de la tâche que vous avez créée, mais elle n'est configurée pour s'exécuter que lorsque vous êtes connecté. Nous devons sélectionner le bouton radio indiquant “Exécuter que l'utilisateur soit connecté ou non,” puis appuyez sur “OK.”

Maintenant, testons notre tâche de deux manières. Tout d'abord, dans la fenêtre principale du planificateur de tâches, faites défiler vers le bas jusqu'à ce que vous voyiez le nom de votre tâche. Si vous avez utilisé le nom “cron,” il devrait être trouvé vers le haut de la liste. Cliquez avec le bouton droit sur la tâche et sélectionnez “Exécuter.”

Ensuite, retournez à 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 le cas, vérifiez que vous avez tout saisi correctement lors des étapes précédentes.

Publicité

Si tout a fonctionné correctement lors de la première vérification, il est temps pour le grand test. Redémarrez votre PC et à votre retour, ouvrez un terminal WSL et exécutez sudo service cron status, ce qui devrait indiquer que cron est en cours d'exécution.

Félicitations ! Vous avez fait votre premier pas dans un monde plus vaste et automatisé. Avec cron exécuté en arrière-plan, les tâches cron que vous configurez dans WSL s'exécuteront automatiquement dans les délais.

LIRE LA SUITE

  • › Que sont les VPN décentralisés ?
  • › iCloud pour Windows vous permet enfin de gérer vos mots de passe
  • › Yik Yak est de retour, mais l'application anonyme est uniquement pour iPhone
  • › Comment désactiver automatiquement le micro de votre manette DualSense sur PS5
  • › Comment utiliser les gestes de l'écran tactile sur une tablette Chromebook