Cron automatisch starten in WSL op Windows 10 en 11

0
186
Miljard foto's/Shutterstock.com< /figuur>

Windows heeft verschillende manieren om taken te automatiseren. De meest gebruikelijke tool is de Windows Taakplanner, maar als je het Windows-subsysteem voor Linux (WSL) gebruikt, is er ook de cron-daemon die taken op de achtergrond uitvoert voor je WSL-installatie.

Cron wordt niet standaard uitgevoerd

Op Windows 10 en Windows 11 wordt cron meegeleverd met Linux-omgevingen zoals Ubuntu. Het probleem is dat WSL cron niet automatisch start, wat betekent dat uw geautomatiseerde taken niet standaard worden uitgevoerd.

Om dit op te lossen, kunt u cron handmatig starten elke keer dat u de opdrachtregel, maar het handmatig starten van een tool die taken zou moeten automatiseren, mist een beetje het punt.

Gelukkig is er een eenvoudige manier om dit op te lossen, en het vereist het gebruik van de Taakplanner.

Als je cron nog nooit in Linux hebt gebruikt om taken uit te voeren, bekijk dan onze vorige tutorial over het plannen van taken op Linux. Voor onze doeleinden hier gaan we ervan uit dat je al een aantal cron-jobs hebt gemaakt in je WSL-installatie en dat je hulp nodig hebt om ervoor te zorgen dat ze de hele tijd draaien in plaats van op cron te passen.

Advertentie

Voor deze tutorial gaan we de sudo-service gebruiken om cron te controleren en te starten, wat de aanbevolen manier is om services te stoppen en te starten op moderne builds van Ubuntu, de meest populaire distributie voor WSL.

Houd er ook rekening mee dat deze tutorial ervan uitgaat dat u beheerdersrechten heeft op uw versie van WSL. Als je de enige gebruiker van je pc bent en je hebt WSL zelf ingeschakeld, dan heb je beheerdersrechten.

Tip: Dit werkt in het Windows-subsysteem voor Linux op Windows 11, ook & #8212;niet alleen op Windows 10.

GERELATEERD: Taken plannen op Linux: een inleiding tot Crontab Bestanden

Linux voorbereiden

Het eerste dat we moeten doen, is de computer cron laten starten zonder wachtwoord. Wanneer u een service zoals cron start, gebruikt u het commando sudo service cron start. Maar voor die opdracht is een wachtwoord vereist, waar Windows geen toegang toe heeft wanneer het opstart. De manier om dit te omzeilen is om de vereiste voor een wachtwoord voor deze opdracht uit te schakelen.

Om dat te doen, opent u uw WSL-terminalvenster en typt u sudo visudo. Druk op Enter op je toetsenbord, voer je Linux-wachtwoord in en druk nogmaals op Enter. Als u Ubuntu gebruikt, opent dit de “sudoers” bestand met behulp van de beginnersvriendelijke Nano-opdrachtregelteksteditor. Sudoers is een bestand voor systeembeheerders die privileges en toegangsrechten voor gebruikers kunnen wijzigen.

Voeg de volgende opdracht toe aan de onderkant van het sudoers-bestand en druk vervolgens op Ctrl+o om op te slaan en op Ctrl+x om af te sluiten het bestand.

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

Dit sudoers-commando zegt dat elke gebruiker die voldoende rechten heeft om het sudo-commando te gebruiken (waaronder jij ook) geen wachtwoord nodig heeft om het commando sudo service cron start uit te voeren, waarmee de cron-daemon wordt gestart.

Nadat je het bestand hebt opgeslagen, kun je controleren of het commando zijn werk doet door sudo service cron start te typen, en het zou cron moeten starten zonder om een ​​wachtwoord te vragen. Als dat werkt, laten we cron dan weer uitschakelen, zodat we kunnen testen of de taak die we in de volgende stap maken, goed werkt. Voer hiervoor sudo service cron stop uit.

Cron instellen in de Windows Taakplanner

Dat is fase één van onze reis naar cron-automatisering. Laten we verder gaan naar deel 2 met de Taakplanner. Tik op de Windows-toets op het toetsenbord en zoek vervolgens naar “Taakplanner.” Start de “Taakplanner” snelkoppeling.

Als het opstart, kijk dan onder de “Acties” sectie en selecteer “Create Basic Task.”

Hiermee wordt de wizard Basistaak geopend. Eerst wordt u gevraagd de taak een naam te geven en een beschrijving te geven. Je kunt hier invullen wat je wilt. We noemden de taak “cron,” en de beschrijving is: “Een taak om cron te starten bij het opstarten van het systeem.” Druk nu op “Volgende.”

In het volgende gedeelte gaan we aan de slag. Ten eerste wil Windows weten wanneer we de taak willen uitvoeren. Kies de “When The Computer Starts” keuzerondje en klik op “Volgende.”

In het volgende gedeelte willen we “Start een programma.” Die optie is standaard geselecteerd, dus klik op “Volgende.”

Advertentie

Nu moeten we het programma specificeren dat we willen uitvoeren, namelijk WSL. Voer het volgende in het “Program/Script” tekstinvoervak: C:WindowsSystem32wsl.exe

We moeten ook enkele argumenten toevoegen, aangezien we tot nu toe alleen WSL hebben gestart, maar binnen WSL moeten we vertel Ubuntu om cron te starten. Dus, in de “Argumenten toevoegen” voeg toe: sudo /usr/sbin/service cron start

< p>Druk op “Volgende” vink nog een keer het vakje aan met de tekst “Open het dialoogvenster Eigenschappen wanneer ik op Voltooien klik,” en klik vervolgens op “Voltooien.”

< p>De taak is gemaakt, maar we moeten nog een laatste ding doen om ervoor te zorgen dat alles werkt. Er wordt een nieuw venster geopend dat de samenvatting toont van de taak die u hebt gemaakt, maar het is alleen ingesteld om te worden uitgevoerd wanneer u bent aangemeld. We moeten het keuzerondje selecteren met de tekst “Uitvoeren, ongeacht of de gebruiker is aangemeld of niet,” en druk vervolgens op “OK.”

Laten we onze taak nu op twee manieren testen. Blader eerst in het hoofdvenster van de Taakplanner naar beneden totdat u uw taaknaam ziet. Als u de naam “cron,” het zou bovenaan de lijst moeten staan. Klik met de rechtermuisknop op de taak en selecteer “Uitvoeren.”

< /p>

Ga dan terug naar je WSL-terminal en typ sudo service cron status, en het zou moeten zeggen dat cron actief is. Als dit niet het geval is, controleer dan nogmaals of je alles correct hebt ingevoerd in de vorige stappen.

Advertentie

Als alles goed werkte bij de eerste controle, is het tijd voor de grote toets. Start uw pc opnieuw op, en wanneer u terugkomt, opent u een WSL-terminal en voert u de sudo-service cron-status uit, die zou moeten aangeven dat de cron nu actief is.

Gefeliciteerd! Je hebt je eerste stap gezet in een grotere, geautomatiseerde wereld. Met cron op de achtergrond draaien de cronjobs die je configureert in WSL automatisch volgens schema.

LEES VOLGENDE

  • › Wat zijn gedecentraliseerde VPN's?
  • › Met iCloud voor Windows kunt u eindelijk uw wachtwoorden beheren
  • › Yik Yak is terug, maar de anonieme app is alleen voor iPhone
  • › Hoe u de microfoon van uw DualSense-controller automatisch kunt dempen op PS5
  • › Touchscreen-bewegingen gebruiken op een Chromebook-tablet