Windows har flere måter å automatisere oppgaver på. Det vanligste verktøyet er Windows Task Scheduler, men hvis du bruker Windows-delsystem for Linux (WSL) , Det er også cron-demonen som kjører oppgaver i bakgrunnen for din WSL-installasjon.
Cron kjører som standard
På Windows 10 og Windows 11 kommer Cron inkludert med Linux-miljøer som Ubuntu. Problemet er at WSL ikke starter Cron automatisk, noe som betyr at dine automatiserte oppgaver ikke blir utført som standard.
For å fikse dette, kan du starte Cron manuelt hver gang du åpner kommandolinjen, men starter manuelt et verktøy som skal automatisere oppgaver, er litt å savne poenget.
Heldigvis er det en enkel måte å fikse dette på, og det krever at du bruker oppgaven Scheduler.
Hvis du aldri har brukt Cron i Linux for å kjøre oppgaver, sjekk ut vår tidligere opplæring på Slik planlegger du oppgaver på Linux . For våre formål her, skal vi anta at du allerede har opprettet noen cron-jobber i WSL-installasjonen din, og at du trenger hjelp til å sørge for at de kjører i stedet for barnevakt Cron hele tiden.
For denne opplæringen skal vi bruke
Sudo Service.
For å sjekke og starte CRON, som er den anbefalte måten å stoppe og starte tjenester på moderne bygninger av Ubuntu-den mest populære distribusjonen for WSL.
Vær også oppmerksom på at denne opplæringen antar at du har administratorrettigheter på din versjon av WSL. Hvis du er den eneste brukeren av PCen din, og du aktiverte WSL på egen hånd, har du administratorrettigheter.
Tips: Dette fungerer i Windows-delsystem for Linux på Windows 11 Også ikke bare på Windows 10.
I SLEKT: Slik planlegger du oppgaver på Linux: En introduksjon til Crontab-filer
Forbered Linux.
Det første vi må gjøre er å la datamaskinen starte Cron uten et passord. Når du starter en tjeneste som Cron, bruker du kommandoen
Sudo Service Cron Start
. Men den kommandoen krever et passord, som Windows ikke har tilgang til når den starter. Veien rundt dette er å slå av kravet til et passord for denne kommandoen.
For å gjøre det, åpne WSL-terminalvinduet og skriv inn
sudo visudo.
. Trykk Enter på tastaturet, skriv inn Linux-passordet ditt, og trykk Enter-tasten igjen. Hvis du bruker Ubuntu, åpner dette "Sudoers" -filen ved hjelp av nybegynnervennlig
Nano Command-Line Text Editor
.
Sudoers
er en fil for systemadministratorer som kan endre privilegier og tilgangsrettigheter for brukere.
Legg til følgende kommando til bunnen av Sudoers-filen, og trykk deretter Ctrl + O for å lagre og Ctrl + X for å gå ut av filen.
% sudo all = nopasswd: / usr / sbin / service cron Start
Denne sudoers-kommandoen sier at enhver bruker som har nok privilegier til å bruke SUDO-kommandoen (som skal inkludere deg), krever ikke et passord for å kjøre kommandoen
Sudo Service Cron Start
, som starter cron-demonen.
Etter at du har lagret filen, kan du kontrollere at kommandoen gjør jobben ved å skrive
Sudo Service Cron Start
, og det skal starte Cron uten å spørre om et passord. Hvis det virket, la oss slå kronen igjen slik at vi kan teste at oppgaven vi skaper i neste trinn fungerer som de skal. For å gjøre det, vennligst løp
Sudo Service Cron Stop
.
Sett opp Cron i Windows Task Scheduler
Det er fase en av vår reise mot Cron Automation. La oss gå videre til del 2 med oppgaven Scheduler. Trykk på Windows-tasten på tastaturet, og søk deretter etter "Oppgaveplanlegger". Start snarveien "Oppgave Scheduler".
Når det starter, se under delen "Handlinger" og velg "Opprett grunnleggende oppgave."
Dette åpner veiviseren for den grunnleggende oppgaven. Først skal det be deg om å nevne oppgaven og gi den en beskrivelse. Du kan skrive inn hva du vil ha her. Vi ringte oppgaven "Cron", og beskrivelsen er, "En oppgave å starte Cron på System Startup." Nå, slå "neste".
I den følgende delen går vi ned til virksomheten. Først vil Windows vite når vi ønsker å kjøre oppgaven. Velg "når datamaskinen starter" Radio-knappen og klikk "Neste".
I neste avsnitt vil vi "starte et program". Det alternativet er valgt som standard, så klikk "Neste".
Nå må vi spesifisere programmet som vi ønsker å kjøre, som er WSL. Skriv inn følgende i tekstboksen "Program / Script":
C: \ windows \ system32 \ wsl.exe
Vi må også legge til noen argumenter, siden alt vi har gjort så langt, begynner WSL, men innenfor WSL, må vi fortelle Ubuntu å starte Cron. Så, i boksen "Legg til argumenter", legg til:
sudo / usr / sbin / service cron start
Hit "Neste" En gang til, merk av i boksen som sier "Åpne dialogboksen Egenskaper når jeg klikker på Fullfør," og klikker deretter "Fullfør".
Oppgaven er opprettet, men vi må gjøre en siste ting for å sikre at alt fungerer. Et nytt vindu åpnes, som viser sammendraget av oppgaven du opprettet, men den er bare satt til å kjøre når du er logget på. Vi må velge radioknappen som sier "Kjør om brukeren er logget på eller ikke," og trykk deretter "OK".
Nå, la oss teste vår oppgave på to måter. Først, i hovedvinduet i oppgaven Scheduler, bla ned til du ser oppgavenavnet ditt. Hvis du brukte navnet "Cron", skal den bli funnet mot toppen av listen. Høyreklikk på oppgaven og velg "Kjør".
Så gå tilbake til WSL-terminalen din og skriv inn
sudo service cron status
, og det bør si at Cron kjører. Hvis det ikke er, dobbeltklikk at du skrev inn alt riktig i de forrige trinnene.
Hvis alt fungerte riktig i den første sjekken, er det på tide for den store testen. Start datamaskinen på nytt, og når du kommer tilbake, åpner du en WSL-terminal og kjører
sudo service cron status
, som skal rapportere at Cron nå kjører.
Gratulerer! Du har tatt ditt første skritt i en større, automatisert verden. Med Cron kjører i bakgrunnen, kjører Cronjobene du konfigurerer i WSL automatisk på planen.