Windows 10 ve 11'de Cron'u WSL'de Otomatik Olarak Başlatma

Yayınlanan: 2022-01-29
Kronometre tutan bir el.
Milyar Fotoğraf/Shutterstock.com

Windows'un görevleri otomatikleştirmenin birkaç yolu vardır. En yaygın araç Windows Görev Zamanlayıcı'dır, ancak Linux için Windows Alt Sistemini (WSL) kullanıyorsanız, WSL yüklemeniz için arka planda görevleri çalıştıran cron arka plan programı da vardır.

Cron Varsayılan Olarak Çalışmıyor

Windows 10 ve Windows 11'de cron, Ubuntu gibi Linux ortamlarıyla birlikte gelir. Sorun şu ki, WSL cron'u otomatik olarak başlatmaz, bu da otomatikleştirilmiş görevlerinizin varsayılan olarak yürütülmediği anlamına gelir.

Bunu düzeltmek için, komut satırını her açtığınızda cron'u manuel olarak başlatabilirsiniz, ancak görevleri otomatikleştirmesi gereken bir aracı manuel olarak başlatmak bu noktayı kaçırıyor.

Neyse ki, bunu düzeltmenin kolay bir yolu var ve bunun için Görev Zamanlayıcı'nın kullanılması gerekiyor.

Cron'un çalışmadığını gösteren bir Windows WSL terminal penceresi.

Görevleri çalıştırmak için Linux'ta hiç cron kullanmadıysanız, Linux'ta görevlerin nasıl zamanlanacağıyla ilgili önceki eğitimimize bakın. Buradaki amaçlarımız için, WSL kurulumunuzda zaten bazı cron işleri oluşturduğunuzu ve her zaman cron bakıcılığı yapmak yerine çalıştıklarından emin olmak için yardıma ihtiyacınız olduğunu varsayacağız.

Reklamcılık

Bu eğitimde, WSL için en popüler dağıtım olan Ubuntu'nun modern yapılarında hizmetleri durdurmak ve başlatmak için önerilen yol olan cron'u kontrol etmek ve başlatmak için sudo service kullanacağız.

Ayrıca, bu öğreticinin WSL sürümünüz üzerinde yönetici haklarına sahip olduğunuzu varsaydığını unutmayın. Bilgisayarınızın tek kullanıcısıysanız ve WSL'yi kendi başınıza etkinleştirdiyseniz, yönetici haklarına sahipsiniz.

İpucu: Bu, yalnızca Windows 10'da değil, Windows 11'de Linux için Windows Alt Sisteminde de çalışır.

İLGİLİ: Linux'ta Görevler Nasıl Planlanır: Crontab Dosyalarına Giriş

Linux'u hazırlayın

Yapmamız gereken ilk şey, bilgisayarın cron'u parola olmadan başlatmasına izin vermek. cron gibi bir hizmeti başlattığınızda, sudo service cron start komutunu kullanırsınız. Ancak bu komut, başladığında Windows'un erişemeyeceği bir parola gerektirir. Bunu aşmanın yolu, bu komut için parola gereksinimini kapatmaktır.

Bunu yapmak için WSL terminal pencerenizi açın ve sudo visudo yazın. Klavyenizde Enter tuşuna basın, Linux şifrenizi girin ve tekrar Enter tuşuna basın. Ubuntu kullanıyorsanız, bu, yeni başlayanlar için uygun Nano komut satırı metin düzenleyicisini kullanarak "sudoers" dosyasını açar. Sudoers, sistem yöneticileri için, kullanıcıların ayrıcalıklarını ve erişim haklarını değiştirebilen bir dosyadır.

Sudoers dosyasının en altına aşağıdaki komutu ekleyin ve ardından kaydetmek için Ctrl+o ve dosyadan çıkmak için Ctrl+x tuşlarına basın.

 %sudo ALL=NOPASSWD: /usr/sbin/service cron start

Bu sudoers komutu, sudo komutunu (sizi içermesi gereken) kullanmak için yeterli ayrıcalığa sahip herhangi bir kullanıcının, cron arka plan programını başlatan sudo service cron start komutunu çalıştırmak için bir parola gerektirmediğini söyler.

Reklamcılık

Dosyayı kaydettikten sonra, sudo service cron start yazarak komutun işini yapıp yapmadığını kontrol edebilirsiniz ve bir parola sormadan cron'u başlatması gerekir. Bu işe yaradıysa, bir sonraki adımda oluşturduğumuz görevin düzgün çalışıp çalışmadığını test edebilmemiz için cron'u tekrar kapatalım. Bunu yapmak için lütfen sudo service cron stop çalıştırın.

Windows Görev Zamanlayıcı'da Cron'u Ayarlayın

Bu, cron otomasyonuna doğru yolculuğumuzun birinci aşaması. Görev Zamanlayıcı ile 2. bölüme geçelim. Klavyedeki Windows tuşuna dokunun ve ardından “Görev Zamanlayıcı”yı arayın. “Görev Zamanlayıcı” kısayolunu başlatın.

Windows 10'da Görev Zamanlayıcı'yı bir seçenek olarak gösteren arama sonuçları.

Başladığında, "Eylemler" bölümünün altına bakın ve "Temel Görev Oluştur"u seçin.

Windows 10'un Görev Zamanlayıcısı, "Temel Görev Oluştur" seçeneğini gösteren kırmızı bir ok ile.

Bu, Temel Görev Sihirbazını açar. İlk olarak, sizden görevi adlandırmanızı ve bir açıklama vermenizi isteyecek. Buraya istediğinizi girebilirsiniz. Göreve "cron" adını verdik ve açıklaması "Sistem başlangıcında cron'u başlatmak için bir görev" şeklindedir. Şimdi, "İleri" ye basın.

Aşağıdaki bölümde, işe başlıyoruz. İlk olarak, Windows görevi ne zaman çalıştırmak istediğimizi bilmek ister. “Bilgisayar Başladığında” radyo düğmesini seçin ve “İleri” ye tıklayın.

Windows 10'da "Bilgisayar başladığında" seçeneğini gösteren kırmızı bir ok bulunan bir dizi radyo düğmesi.

Bir sonraki bölümde “Bir Program Başlat” istiyoruz. Bu seçenek varsayılan olarak seçilidir, bu nedenle "İleri"yi tıklayın.

Program yolunu ve ek bağımsız değişkenler metin giriş kutusunu gösteren kırmızı oklarla Windows 10 Görev Zamanlayıcı'nın program seçenekleri.

Reklamcılık

Şimdi, çalıştırmak istediğimiz programı WSL olan belirlememiz gerekiyor. “Program/Script” metin giriş kutusuna şunu girin: C:\Windows\System32\wsl.exe

Ayrıca bazı argümanlar eklememiz gerekiyor, çünkü şimdiye kadar yaptığımız tek şey WSL'yi başlatmak, ancak WSL içinde Ubuntu'ya cron'u başlatmasını söylememiz gerekiyor. Bu nedenle, "Argüman Ekle" kutusuna şunu ekleyin: sudo /usr/sbin/service cron start

Windows 10'un Görev Zamanlayıcı'nın, sonunda görev özellikleri penceresini açma seçeneğine işaret eden kırmızı bir ok ile son görev oluşturma penceresi.

Bir kez daha "İleri" ye basın, "Son'a Tıkladığımda Özellikler İletişim Kutusunu Aç" yazan kutuyu işaretleyin ve ardından "Bitir" e tıklayın.

"Kullanıcı oturum açmış olsa da olmasa da çalıştır" seçeneğini gösteren kırmızı oklu bir Windows Görev özellikleri penceresi.

Görev oluşturuldu, ancak her şeyin çalıştığından emin olmak için son bir şey yapmalıyız. Oluşturduğunuz görevin özetini gösteren yeni bir pencere açılacaktır, ancak bu yalnızca oturum açtığınızda çalışacak şekilde ayarlanmıştır. “Kullanıcı Oturum Açsa da Açmasa da Çalıştır” yazan radyo düğmesini seçip “Tamam” a basmamız gerekiyor.

Şimdi görevimizi iki şekilde test edelim. İlk olarak, Görev Zamanlayıcı'nın ana penceresinde görev adınızı görene kadar aşağı kaydırın. "Cron" adını kullandıysanız, listenin en üstünde bulunmalıdır. Göreve sağ tıklayın ve “Çalıştır”ı seçin.

Cron'un çalıştığını gösteren bir terminal penceresi.

Ardından, WSL terminalinize geri dönün ve sudo service cron status yazın ve cron'un çalıştığını söylemelidir. Değilse, önceki adımlarda her şeyi doğru girdiğinizden emin olun.

Reklamcılık

İlk kontrolde her şey düzgün çalıştıysa, büyük testin zamanı geldi. Bilgisayarınızı yeniden başlatın ve geri döndüğünüzde, bir WSL terminali açın ve sudo service cron status komutunu çalıştırın; bu, cron'un şu anda çalıştığını bildirmelidir.

Tebrikler! Daha büyük, otomatikleştirilmiş bir dünyaya ilk adımınızı attınız. Arka planda çalışan cron ile WSL'de yapılandırdığınız cronjobs otomatik olarak programa göre çalışır.