Windows, görevleri otomatikleştirmek için birkaç yol vardır. En yaygın araç, Windows Görev Zamanlayıcıdır, ancak kullanıyorsanız Linux için Windows alt sistemi (WSL) Ayrıca, WSL kurulumunuz için arka planda görevleri yürüten Cron daemon var.
Cron varsayılan olarak çalışmıyor
Windows 10 ve Windows 11'de, CRON Ubuntu gibi Linux ortamlarına dahil edildi. Sorun, WSL'nin Cron'a otomatik olarak başlamamasıdır, yani otomatik görevlerinizin varsayılan olarak yürütülmemesi anlamına gelir.
Bunu düzeltmek için, komut satırını her açışınızda Cron'a manuel olarak başlatabilirsiniz, ancak görevleri otomatikleştirmesi gereken bir aracı manuel olarak başlayabilirsiniz.
Neyse ki, bunu düzeltmenin kolay bir yolu var ve görev zamanlayıcısını kullanmayı gerektirir.
Hiçbir zaman Linux'teki Cron kullanmadıysanız, görevleri çalıştırmak için önceki öğreticimize göz atın. Linux'ta Görev Planlama Nasıl . Buradaki amaçlarımız için, WSL kurulumunuzda zaten bazı Cron işleri oluşturduğunuzu ve her zaman bebek bakıcılığı yerine koştuklarından emin olmak için yardıma ihtiyacınız olduğunu varsayacağız.
Bu eğitim için kullanacağız
Sudo servisi
Cron'u kontrol etmek ve başlatmak için, WSLU için modern Ubuntu inşaatlarında hizmetleri durdurma ve hizmetleri başlatmanın önerdiği yoludur. WSL için en popüler dağıtım.
Ayrıca, bu öğreticinin WSL sürümünüzde yönetici haklarına sahip olduğunuzu varsaydığını unutmayın. Bilgisayarınızın tek kullanıcısıysanız ve kendi başınıza WSL'yi etkinleştirdiyseniz, yönetici haklarınız var.
Uç: Bu işe yarıyor Windows 11'deki Linux için Windows alt sistemi , da sadece Windows 10'da değil.
İLGİLİ: Linux'ta görevler nasıl zamanlanır: Crontab dosyalarına giriş
Linux hazırlamak
Yapmamız gereken ilk şey, bilgisayarın Cron'a şifre olmadan başlamasını sağlamaktır. Cron gibi bir hizmeti başlattığınızda, komutu kullanırsınız.
sudo servis cron başlatmak
. Ancak bu komut, Windows'un başladığı zaman erişemeyeceği bir şifre gerektirir. Bunun yolunun bu komut için bir şifre için gerekliliği kapatmaktır.
Bunu yapmak için, WSL terminal pencerenizi açın ve
sudo visudo
. Klavyenize girin, Linux şifrenizi girin ve tekrar girin tuşuna tekrar basın. Ubuntu kullanıyorsanız, bu başlangıç dostu kullanarak "sudoers" dosyasını açar.
Nano komut satırı metin editörü
.
Sudoers
Kullanıcılar için ayrıcalıkları ve erişim haklarını değiştirebilecek sistem yöneticileri için bir dosyadır.
SUDOERS dosyasının altına aşağıdaki komutu ekleyin ve ardından dosyadan çıkmak için Ctrl + x'i kaydetmek ve Ctrl + x tuşuna basın.
% sudo all = nopasswd: / usr / sbin / servis cron başlangıç
Bu sudoers komutu, sudo komutunu kullanmak için yeterli ayrıcalıklı herhangi bir kullanıcının (sizi içermesi gerektiğini), komutu çalıştırmak için bir şifre gerektirmez
sudo servis cron başlatmak
, Cron daemon'u başlatan.
Dosyayı kaydettikten sonra, komutun yazarak işini yaptığını kontrol edebilirsiniz.
sudo servis cron başlatmak
ve bir şifre sormadan Cron'a başlamalıdır. Bu işe yarayacaksa, bir sonraki aşamada yarattığımız görevin düzgün çalıştığını test edebileceğimiz için cron'ı tekrar kapatalım. Bunu yapmak için lütfen koşun
sudo servis cron durak
.
Windows Görev Zamanlayıcısına Cron Ayarla
Bu, Cron Otomasyonu'na yönelik yolculuğumuzdan biri. Görev zamanlayıcısı ile 2. bölüm 2'ye geçelim. Klavyedeki Windows tuşuna dokunun ve ardından "Görev Zamanlayıcısı" arayın. "Görev Zamanlayıcı" kısayolunu başlatın.
Başladığında, "Eylemler" bölümünün altına bakın ve "Temel Görev Oluştur" seçeneğini seçin.
Bu Temel Görev Sihirbazı açılır. Birincisi, görevi isim ve bir açıklama vermenizi isteyecek. Sen burada istediğini girebilirsiniz. Biz “cron” görev olarak adlandırılan ve açıklama ise, “Sistem başlangıcında cron'u başlatmak için bir görev.” Şimdi, “İleri.” Hit
Aşağıdaki bölümde, işten. Önce, Windows biz görevi çalıştırmak istediğinizde bilmek istiyor. “Bilgisayar başlatır” radyo düğmesini seçip “İleri”.
Bir sonraki bölümde, “Başlat Bir Program” istiyorum. Bu seçenek bu yüzden tıklayın varsayılan olarak seçilir “İleri.”
Şimdi, WSL biz çalıştırmak istediğiniz programı belirtmek gerekir. “Program / Senaryo” metin giriş kutusu içine aşağıdakileri girin:
C: \ Windows \ System32 \ wsl.exe
Ayrıca şu ana kadar yaptığım tüm wsl başlatmak, ancak iç WSL, biz cron'u başlatmak için Ubuntu anlatmaya gerek çünkü bazı argümanları eklemeniz gerekir. Yani, “Argümanlar Ekle” kutusuna ekleyin:
sudo / usr / sbin / hizmet cron başlangıç
Hit “İleri” Bir kere daha, “Ben Son'u tıklattığınızda Açık Properties Dialog” yazan kutuyu işaretleyin ve ardından “Finish”.
Görev yarattı, ama biz her şeyin çalıştığından emin olmak için son bir şey yapmak zorunda olduğunu. Yeni bir pencere oluşturduğunuz bu görevin özetini gösteren, açılacak, ancak yalnızca siz oturum bittiğinde çalıştırmak için ayarlanmıştır. Biz, “Çalıştır İster Kullanıcı Giriş Açık Yoksa değil mi” diyor radyo düğmesini seçmeniz gerekir ve daha sonra basın “Tamam.”
Şimdi, iki şekilde bizim görev test edelim. Eğer senin görevin adını görene kadar Birincisi, Görev Zamanlayıcı ana penceresinde, aşağı kaydırın. Eğer adı kullanılıyor “Eğer cron'u” listenin üst kısmına doğru bulunmalıdır. Görevi sağ tıklayın ve “Çalıştır”.
Ardından, WSL terminali ve tipi dönmek
sudo hizmet cron durumu
Ve o cron çalıştığı diyebilirim. Değilse, çift çek önceki adımlarda doğru girdiğinizi söyledi.
Her şey ilk kontrol altında düzgün çözmezse, bu büyük bir test zamanı. PC'nizi yeniden başlatın ve Döndüğünde, bir WSL terminali açın ve komut satırından
sudo hizmet cron durumu
, Olanı cron şimdi çalışıyor bildirmelidir.
Tebrikler! Sen daha büyük, otomatik dünyasına ilk adımı attık. Arka planda çalışan cron ile, WSL içinde yapılandırmanız Cronjobs otomatik planlamaya göre çalışır.