Windows har flere måder at automatisere opgaver på. Det mest almindelige værktøj er Windows Task Scheduler, men hvis du bruger Windows-delsystemet til Linux (WSL) , Der er også cron-dæmonen, der kører opgaver i baggrunden for din WSL-installation.
Cron kører ikke som standard
På Windows 10 og Windows 11 kommer CRON inkluderet med Linux-miljøer som Ubuntu. Problemet er, at WSL ikke starter Cron automatisk, hvilket betyder, at dine automatiske opgaver ikke bliver udført som standard.
For at rette dette kan du starte Cron manuelt hver gang du åbner kommandolinjen, men manuelt starter et værktøj, der skulle automatisere opgaver, der mangler punktet.
Heldigvis er der en nem måde at løse dette på, og det kræver at bruge opgaveplanlæggeren.
Hvis du aldrig har brugt CRON i Linux til at køre opgaver, skal du tjekke vores tidligere tutorial på Sådan planlægger du opgaver på Linux . Til vores formål vil vi antage, at du allerede har oprettet nogle Cron-job i din WSL-installation, og at du har brug for hjælp til at sikre, at de kører i stedet for babysitterknappen hele tiden.
For denne vejledning skal vi bruge
sudo service.
For at kontrollere og starte Cron, som er den anbefalede måde at stoppe og starte tjenester på moderne bygninger af Ubuntu-den mest populære distribution for WSL.
Bemærk også, at denne vejledning forudsætter, at du har administratorrettigheder på din version af WSL. Hvis du er den eneste bruger af din pc, og du aktiverede WSL alene, så har du administratorrettigheder.
Tip: Dette virker i Windows Subsystem til Linux på Windows 11 , for ikke bare på Windows 10.
RELATEREDE: Sådan planlægger du opgaver på Linux: En introduktion til Crontab-filer
Forbered Linux.
Det første, vi skal gøre, er at tillade computeren at starte cron uden adgangskode. Når du starter en tjeneste som CRON, bruger du kommandoen
sudo service cron starter
. Men denne kommando kræver et kodeord, hvilke vinduer ikke har adgang til, når den starter. Vejen omkring dette er at slukke for kravet om et kodeord til denne kommando.
For at gøre det skal du åbne dit WSL-terminal vindue og skrive ind
sudo visudo.
. Hit Enter på dit tastatur, indtast din Linux-adgangskode, og tryk på Enter-tasten igen. Hvis du bruger Ubuntu, åbner dette "sudoers" filen ved hjælp af den nybegyndervenlige
Nano command-line teksteditor
.
Sudoers.
er en fil for systemadministratorer, der kan ændre privilegier og adgangsrettigheder for brugere.
Tilføj følgende kommando til bunden af Sudoers-filen, og tryk derefter på CTRL + O for at gemme og CTRL + X for at afslutte filen.
% sudo all = nopasswd: / usr / sbin / service cron start
Denne Sudoers-kommando siger, at enhver bruger, der har nok privilegier til at bruge Sudo-kommandoen (det skal indeholde dig) kræver ikke et kodeord for at køre kommandoen
sudo service cron starter
, som starter cron-dæmonen.
Når du har gemt filen, kan du kontrollere, at kommandoen gør sit job ved at skrive
sudo service cron starter
, og det skal starte cron uden at bede om et kodeord. Hvis det fungerede, lad os vende Cron Off igen, så vi kan teste, at den opgave, vi opretter i det næste trin, fungerer korrekt. For at gøre det, skal du køre
sudo service cron stop
.
Opsæt CRON i Windows Task Scheduler
Det er fase en af vores rejse mod Cron Automation. Lad os gå videre til del 2 med opgaveplanlæggeren. Tryk på Windows-tasten på tastaturet, og søg derefter efter "Task Scheduler." Start "Opgave Scheduler" genvej.
Når det starter op, se under afsnittet "Handlinger" og vælg "Opret grundlæggende opgave".
Dette åbner den grundlæggende opgaveguide. For det første vil det bede dig om at nævne opgaven og give den en beskrivelse. Du kan indtaste det, du vil have her. Vi kaldte opgaven "CRON", og beskrivelsen er "en opgave at starte cron på systemstart." Nu hit "næste."
I det følgende afsnit kommer vi ned til erhvervslivet. For det første ønsker Windows at vide, hvornår vi ønsker at køre opgaven. Vælg "Når computeren starter" radioknappen og klik på "Næste".
I næste afsnit vil vi have "Start et program." Denne mulighed er valgt som standard, så klik på "Næste".
Nu skal vi angive det program, vi ønsker at køre, hvilket er WSL. Indtast følgende i tekstindtastningsfeltet "Program / script":
C: \ windows \ system32 \ wsl.exe
Vi skal også tilføje nogle argumenter, da alt vi har gjort hidtil, starter WSL, men inden for WSL skal vi fortælle Ubuntu at starte Cron. Så i feltet "Tilføj argumenter", tilføj:
sudo / usr / sbin / service cron start
Hit "Næste" endnu en gang, check boksen, der siger "Åbn dialogboksen Egenskaber, når jeg klikker på Afslut", og klik derefter på "Afslut".
Opgaven er oprettet, men vi skal gøre en endelig ting for at sikre, at alt fungerer. Et nyt vindue åbnes, hvilket viser resuméet af den opgave, du har oprettet, men det er kun indstillet til at køre, når du er logget på. Vi skal vælge den radioknap, der siger "Kør, om brugeren er logget på eller ej," og tryk derefter på "OK".
Lad os nu teste vores opgave på to måder. Først skal du i hovedvinduet på opgaveplanlæggeren rulle ned, indtil du ser dit opgavemyndighed. Hvis du brugte navnet "CRON", skal det findes i toppen af listen. Højreklik på opgaven og vælg "Kør".
Så gå tilbage til din WSL-terminal og skriv ind
sudo service cron status
, og det skal sige, at cron kører. Hvis det ikke er tilfældet, skal du kontrollere, at du har indtastet alt korrekt i de foregående trin.
Hvis alt fungerede korrekt i den første check, er det tid til den store test. Genstart din pc, og når du kommer tilbage, skal du åbne en WSL-terminal og køre
sudo service cron status
, som skal rapportere, at CRON nu kører.
Tillykke! Du har taget dit første skridt i en større, automatiseret verden. Med cron kører i baggrunden, vil crronjobs, du konfigurerer i WSL, automatisk på skema.