Windows ma kilka sposobów automatyzacji zadań. Najczęstszym narzędziem jest harmonogram zadania systemu Windows, ale jeśli używasz Podsystem Windows dla Linux (WSL) Istnieje również demon Cron, który prowadzi zadania w tle dla instalacji WSL.
Cron nie działa domyślnie
W systemie Windows 10 i Windows 11, Cron jest dołączony do środowisk Linuksa, takich jak Ubuntu. Problem polega na tym, że WSL nie uruchamia się automatycznie Cron, co oznacza, że zautomatyzowane zadania nie są wykonywane domyślnie.
Aby to naprawić, możesz ręcznie uruchomić Cron za każdym razem, gdy otworzysz wiersz poleceń, ale ręcznie uruchomienie narzędzia, które ma zautomatyzować zadania, jest trochę brakującego punktu.
Na szczęście jest łatwy sposób na naprawienie tego, a wymaga użycia harmonogramu zadań.
Jeśli nigdy nie używałeś Cron w Linuksie, aby uruchomić zadania, sprawdź nasz poprzedni samouczek Jak zaplanować zadania w systemie Linuksa . W naszym celach przyjmiemy, że już stworzyłeś jakieś zadania Cron w instalacji WSL i że potrzebujesz pomocy upewniając się, że biegają zamiast opieki nad dziećmi przez cały czas.
Na ten samouczek będziemy używać
Sudo Service.
Aby sprawdzić i uruchomić Cron, który jest zalecanym sposobem na zatrzymanie i rozpoczęcie usług na nowoczesnych budowa Ubuntu - najpopularniejszej dystrybucji WSL.
Należy również pamiętać, że to samouczek zakłada, że masz uprawnienia administratora w wersji WSL. Jeśli jesteś jedynym użytkownikiem komputera i włączyłeś własną WSL, masz prawa administratora.
Wskazówka: Działa to w Podsystem Windows dla Linux w systemie Windows 11 , zbyt nie tylko na Windows 10.
ZWIĄZANE Z: Jak zaplanować zadania w systemie Linux: wprowadzenie do plików Crontab
Przygotuj Linuksa
Pierwszą rzeczą, którą musimy zrobić, to pozwolić komputerowi uruchomić Cron bez hasła. Po uruchomieniu usługi jak Cron, używasz polecenia
Sudo Service Cron Start
. Ale to polecenie wymaga hasła, które okna nie będą miały dostępu, gdy się uruchomi. Wokoło tego jest wyłączanie wymogu hasła do tego polecenia.
Aby to zrobić, otwórz okno terminalu WSL i wpisz
sudo visudo.
. Naciśnij Enter na klawiaturze, wprowadź hasło Linux i ponownie naciśnij klawisz Enter. Jeśli używasz Ubuntu, otwiera plik "sudoers" za pomocą przyjaznego dla początkujących
Edytor tekstu wiersza polecenia nano
.
Sudoers.
jest plikiem dla administratorów systemu, które mogą zmienić uprawnienia i prawa dostępu dla użytkowników.
Dodaj następujące polecenie do dołu pliku sudoers, a następnie naciśnij Ctrl + O, aby zapisać i Ctrl + X, aby wyjść z pliku.
% sudo all = nopasswd: / usr / sbin / usługa cron Start
To polecenie Sudoers mówi, że każdy użytkownik ma wystarczającą ilość przywilejów, aby korzystać z polecenia sudo (które powinno zawierać, nie wymaga hasła do uruchomienia polecenia
Sudo Service Cron Start
, co zaczyna demon Cron.
Po zapisaniu pliku możesz sprawdzić, czy polecenie wykonuje swoją pracę, wpisując
Sudo Service Cron Start
i powinien rozpocząć Cron bez prośby o hasło. Jeśli to zadziała, znowu obróćmy Cron, abyśmy mogli przetestować, że zadanie, które tworzymy w następnym kroku działa prawidłowo. Zrobić to, proszę biegać
Sudo Service Cron stop
.
Ustaw Cron w harmonogramie zadań Windows
To faza jedna z naszej podróży w kierunku Cron Automation. Przejdźmy do części 2 za pomocą harmonogramu zadań. Stuknij klawisz Windows na klawiaturze, a następnie wyszukaj "Planowanie zadań". Uruchom skrót "Harmonogram zadań".
Po uruchomieniu, spójrz na sekcję "Działania" i wybierz "Utwórz podstawowe zadanie".
Otwiera to podstawowe kreator zadania. Po pierwsze, poprosi Cię o wymień zadanie i podać opis. Możesz wprowadzić cokolwiek tu chcesz. Zadzwoniliśmy do zadania "Cron", a opis jest "zadaniem, aby rozpocząć Cron w uruchomieniu systemu". Teraz, naciśnij "Dalej".
W poniższej sekcji dostaliśmy się do biznesu. Po pierwsze, Windows chce wiedzieć, kiedy chcemy uruchomić zadanie. Wybierz "Po uruchomieniu komputera" Przycisk radiowy i kliknij "Dalej".
W następnej sekcji chcemy "uruchomić program". Ta opcja jest domyślnie wybierana, więc kliknij "Dalej".
Teraz musimy określić program, który chcemy uruchomić, co jest WSL. Wprowadź poniższe pole wejściowe "Program / skrypt":
C: Windows System32 WSL.exe
Musimy również dodać pewne argumenty, ponieważ do tej pory do tej pory możemy rozpocząć WSL, ale wewnątrz WSL musimy powiedzieć Ubuntu, aby rozpocząć Cron. Tak więc w polu "Dodaj argumenty", dodaj:
sudo / usr / sbin / usługa cron start
Naciśnij "Dalej" jeszcze raz, zaznacz pole, które mówi "Otwórz okno dialogowe Właściwości po kliknięciu Zakończ", a następnie kliknij "Zakończ".
Zadanie jest tworzone, ale musimy zrobić jedną ostatnią rzecz, aby upewnić się, że wszystko działa. Nowe okno otworzy, co pokazuje podsumowanie utworzonego zadania, ale jest on tylko ustawiony na uruchomiony, gdy jesteś zalogowany. Musimy wybrać przycisk radiowy, który mówi "Uruchom, czy użytkownik jest zalogowany,", a następnie naciśnij "OK".
Teraz przetestujmy nasze zadanie na dwa sposoby. Najpierw, w głównym oknie harmonogramu zadań, przewiń w dół, aż zobaczysz nazwę zadania. Jeśli użyłeś nazwy "Cron", należy znaleźć na górze listy. Kliknij prawym przyciskiem myszy zadanie i wybierz "Uruchom".
Wtedy wróć do terminalu WSL i wpisz
Status Sudo Service Cron
i powinno powiedzieć, że Cron działa. Jeśli tak nie jest, sprawdzić, czy wprowadziłeś wszystko poprawnie w poprzednich krokach.
Jeśli wszystko działało poprawnie w pierwszym czeku, nadszedł czas na duży test. Uruchom ponownie komputer, a kiedy wrócisz, otwórz terminal WSL i uruchom
Status Sudo Service Cron
, co powinno zgłosić, że Cron działa teraz.
Gratulacje! Wziąłeś pierwszy krok do większego, zautomatyzowanego świata. Z Cron działa w tle, Cronjobs, które skonfigurujesz w WSL automatycznie uruchomi się na harmonogramie.