So führen Sie einen Cron-Scheduler automatisch in WSL unter Windows 10 und Windows 11 aus
Windows hat viele Möglichkeiten Aufgaben automatisieren. Das gebräuchlichste Werkzeug ist ein Programm Windows-Aufgabenplaner , aber wenn Sie sich auf dem Windows-Subsystem für Linux (WSL) befinden, gibt es auch einen Cron-Daemon, der Aufgaben im Hintergrund ausführt, um WSL zu installieren.
Der Planer ist standardmäßig nicht aktiviert
In Windows 10 und Windows 11 ist der Cron-Scheduler in Linux-Umgebungen wie Ubuntu integriert. Das Problem ist, dass WSL Cron nicht automatisch startet, was bedeutet, dass Ihre automatisierten Aufgaben nicht standardmäßig ausgeführt werden.
Um dies zu beheben, können Sie Cron jedes Mal manuell starten, wenn Sie die Befehlszeile öffnen, aber das Starten eines Tools, das Aufgaben automatisch ausführen soll, verfehlt den Punkt.
Glücklicherweise gibt es eine einfache Möglichkeit, dies zu beheben, und dies erfordert die Verwendung eines Taskplaners.
Wenn Sie den Cron-Scheduler in Linux noch nie zum Ausführen von Aufgaben verwendet haben, lesen Sie unser vorheriges Tutorial zum Planen von Aufgaben unter Linux. Für unsere Zwecke hier gehen wir davon aus, dass Sie bereits einige Cron-Jobs in Ihrer WSL-Installation erstellt haben und Hilfe benötigen, um sicherzustellen, dass sie ausgeführt wird, anstatt ständig Cron zu babysitten.
In diesem Tutorial verwenden wir den sudo-Dienst, um cron zu überprüfen und zu starten. Dies ist die empfohlene Methode zum Stoppen und Starten von Diensten in neueren Versionen von Ubuntu - der beliebtesten WSL-Distribution.
Beachten Sie auch, dass in diesem Tutorial davon ausgegangen wird, dass Sie über Administratorrechte für Ihre WSL-Version verfügen. Wenn Sie der einzige Benutzer Ihres Computers sind und WSL selbst aktivieren, haben Sie Administratorrechte.
Rat: Dies funktioniert auch im Windows-Subsystem für Linux unter Windows 11 – nicht nur unter Windows 10
Linux-Vorbereitung
Als erstes müssen wir dem Computer erlauben, den Cron-Scheduler ohne Passwort zu starten. Wenn Sie einen Dienst wie cron starten, können Sie den Befehl sudo service cron start verwenden. Dieser Befehl erfordert jedoch ein Kennwort, auf das Windows beim Start nicht zugreifen kann. Um dies zu umgehen, deaktivieren Sie die Kennwortanforderung für diesen Befehl.
Öffnen Sie dazu ein WSL-Terminalfenster und geben Sie sudo visudo ein. Drücken Sie die Eingabetaste auf Ihrer Tastatur, geben Sie Ihr Linux-Passwort ein und drücken Sie erneut die Eingabetaste. Wenn Sie Ubuntu verwenden, wird die Datei 'sudoers' mit dem anfängerfreundlichen Nano-Befehlszeilen-Texteditor geöffnet. Sudoers ist eine Datei für Systemadministratoren, die die Privilegien und Zugriffsrechte von Benutzern ändern kann.
Fügen Sie den folgenden Befehl am Ende der sudoers-Datei hinzu, drücken Sie dann Strg + o zum Speichern und Strg + x, um die Datei zu verlassen.
%sudo ALL=NOPASSWD: /usr/sbin/service cron start
Dieser sudoers-Befehl besagt, dass jeder Benutzer mit ausreichenden Berechtigungen zur Verwendung des sudo-Befehls (einschließlich Ihnen) kein Passwort benötigt, um den Befehl sudo service cron start auszuführen, der den cron-Daemon startet.
Nachdem Sie die Datei gespeichert haben, können Sie überprüfen, ob der Befehl seine Aufgabe erfüllt, indem Sie sudo service cron start eingeben, und cron sollte starten, ohne nach dem Passwort zu fragen. Wenn das funktioniert, schalten wir Cron wieder aus, damit wir testen können, ob die Aufgabe, die wir im nächsten Schritt erstellen, ordnungsgemäß funktioniert. Führen Sie dazu bitte sudo service cron stop aus.
Den Cron-Planer im Windows-Aufgabenplaner einrichten
Dies ist der erste Schritt auf unserem Weg zur Cron-Automatisierung. Kommen wir zu Teil 2 mit dem Taskplaner. Drücken Sie die Windows-Taste auf Ihrer Tastatur und suchen Sie nach „Aufgabenplaner. Führen Sie eine Verknüpfung ausAufgabenplaner".
Schauen Sie beim Start unten im Abschnitt "Verfahren" und wählen Sie "Erstellen Sie eine grundlegende Aufgabe".
Dadurch wird der Assistent für grundlegende Aufgaben geöffnet. Zuerst werden Sie aufgefordert, die Aufgabe zu benennen und zu beschreiben. Hier können Sie eingeben, was Sie wollen. Wir haben die Mission gestartet "Krone" , die Beschreibung ist "Eine Aufgabe zum Starten von Cron beim Systemstart." Jetzt drücken "nächste".
Im nächsten Abschnitt machen wir uns an die Arbeit. Zuerst möchte Windows wissen, wann wir die Aufgabe ausführen möchten. Wählen Sie das OptionsfeldWenn der Computer startetund klicke "nächste".
Im nächsten Abschnitt wollen wir „Programm starten“. Diese Option ist standardmäßig ausgewählt, klicken Sie also auf "nächste".
Jetzt müssen wir das Programm auswählen, das wir ausführen möchten, nämlich WSL. Geben Sie Folgendes in das Texteingabefeld Programm/Skript ein: C:\Windows\System32\wsl.exe
Wir müssen auch einige Argumente hinzufügen, da wir bisher nur WSL gestartet haben, aber innerhalb von WSL müssen wir Ubuntu anweisen, cron zu starten. Fügen Sie im Feld Medien hinzufügen Folgendes hinzu:
sudo /usr/sbin/service cron start
Klicke auf "nächster" Aktivieren Sie erneut das Kontrollkästchen mit der Aufschrift „Der Eigenschaftendialog wird geöffnet, wenn Sie auf Fertig stellen klicken“ , dann tippen Sie auf "Ende".
Die Aufgabe ist erstellt, aber wir müssen noch einen letzten Schritt tun, um sicherzustellen, dass alles funktioniert. Es öffnet sich ein neues Fenster mit einer Zusammenfassung der von Ihnen erstellten Aufgabe, die jedoch nur ausgeführt wird, wenn Sie angemeldet sind. Wir müssen das Optionsfeld mit der Aufschrift „T . auswählenAusführen, ob der Benutzer eingeloggt ist oder nichtA“, und drücken Sie dann "OK".
Lassen Sie uns nun unsere Aufgabe auf zwei Arten testen. Scrollen Sie zunächst im Hauptfenster der Aufgabenplanung nach unten, bis Sie den Namen Ihrer Aufgabe sehen. Wenn Sie den Namen „Cron-Scheduler“ verwenden, sollte dieser ganz oben in der Liste stehen. Klicken Sie mit der rechten Maustaste auf die Aufgabe und wählen Sie Ausführen.
Als nächstes kehren Sie zu Ihrem WSL-Terminal zurück und geben den Status von sudo service cron ein, es sollte sagen, dass cron ausgeführt wird. Wenn nicht, überprüfen Sie, ob Sie in den vorherigen Schritten alles richtig eingegeben haben.
Wenn beim ersten Scan alles richtig funktioniert, ist es Zeit für den großen Test. Starten Sie den Computer neu, und wenn Sie zurückkommen, öffnen Sie das WSL-Terminal und führen Sie den Sudo-Cron-Dienststatus aus, der melden sollte, dass Cron jetzt ausgeführt wird.
Unser ende! Sie haben Ihren ersten Schritt in eine größere Roboterwelt getan. Wenn Cron im Hintergrund ausgeführt wird, werden die Cronjobs, die Sie in WSL konfigurieren, automatisch nach Zeitplan ausgeführt.