Windows memiliki beberapa cara untuk mengotomatisasi tugas-tugas. Alat yang paling umum adalah Windows Task Scheduler, tetapi jika Anda menggunakan Jendela Subsystem untuk Linux (WSL) , Ada juga cron daemon yang berjalan tugas di latar belakang untuk WSL Anda install.
Cron Bukankah Running oleh default
Pada Windows 10 dan Windows 11, cron datang disertakan dengan lingkungan Linux seperti Ubuntu. Masalahnya adalah bahwa WSL tidak mulai cron otomatis, yang berarti bahwa tugas-tugas otomatis Anda tidak mendapatkan dieksekusi secara default.
Untuk memperbaiki ini, Anda bisa mulai cron secara manual setiap kali Anda membuka baris perintah, tapi secara manual mulai alat yang seharusnya untuk mengotomatisasi tugas-tugas adalah jenis hilang titik.
Untungnya, ada cara mudah untuk memperbaiki ini, dan itu membutuhkan menggunakan Task Scheduler.
Jika Anda belum pernah menggunakan cron di Linux untuk tugas-tugas run, lihat tutorial kami sebelumnya di bagaimana menjadwalkan tugas-tugas di Linux . Untuk tujuan kita di sini, kita akan berasumsi bahwa Anda telah membuat beberapa pekerjaan cron di WSL Anda menginstal dan bahwa Anda perlu membantu memastikan bahwa mereka menjalankan bukannya menjaga anak cron sepanjang waktu.
Untuk tutorial ini, kita akan menggunakan
layanan sudo
untuk memeriksa dan mulai cron, yang merupakan cara yang direkomendasikan untuk berhenti dan memulai layanan pada modern yang membangun dari Ubuntu-distribusi populer paling untuk WSL.
Juga, perhatikan bahwa tutorial ini mengasumsikan bahwa Anda memiliki hak administrator pada versi WSL. Jika Anda satu-satunya pengguna PC Anda dan Anda mengaktifkan WSL pada Anda sendiri, maka Anda memiliki hak administrator.
Tip: Ini bekerja di Jendela Subsystem untuk Linux pada Windows 11 Juga-bukan hanya pada Windows 10.
TERKAIT: Cara Menjadwalkan Tugas di Linux: Pengantar File Crontab
Siapkan Linux
Hal pertama yang harus kita lakukan adalah memungkinkan komputer untuk memulai cron tanpa password. Ketika Anda memulai layanan seperti cron, Anda menggunakan perintah
sudo layanan cron awal
. Tapi perintah yang membutuhkan password, yang Windows tidak akan memiliki akses ke ketika dijalankan. Cara sekitar ini adalah untuk mematikan persyaratan untuk password untuk perintah ini.
Untuk melakukan itu, buka jendela terminal WSL Anda dan ketik
sudo visudo
. Hit Enter pada keyboard Anda, masukkan password Linux Anda, dan tekan tombol Enter lagi. Jika Anda menggunakan Ubuntu, ini membuka “sudoers” file menggunakan pemula-ramah
editor teks baris perintah Nano
.
sudoers
adalah file untuk administrator sistem yang dapat mengubah hak istimewa dan hak akses untuk pengguna.
Tambahkan perintah berikut ke bagian bawah file sudoers, dan kemudian tekan Ctrl + o untuk menyimpan dan Ctrl + x untuk keluar file.
% sudo ALL = NOPASSWD: / usr / sbin / service cron awal
Perintah sudoers ini mengatakan bahwa setiap pengguna yang memiliki hak akses untuk menggunakan perintah sudo (yang harus mencakup Anda) tidak memerlukan password untuk menjalankan perintah
sudo layanan cron awal
, Yang dimulai daemon cron.
Setelah Anda menyimpan file, Anda dapat memeriksa bahwa perintah melakukan tugasnya dengan mengetik
sudo layanan cron awal
, Dan itu harus mulai cron tanpa meminta password. Jika yang bekerja, mari kita belok cron off lagi sehingga kita dapat menguji bahwa tugas kita menciptakan pada langkah berikutnya bekerja dengan baik. Untuk melakukan itu, silakan jalankan
sudo layanan cron berhenti
.
Set Up Cron di Windows Task Scheduler
Itu fase salah satu dari perjalanan kita menuju otomatisasi cron. Langkah Mari kita ke bagian 2 dengan Task Scheduler. Tekan tombol Windows pada keyboard, dan kemudian mencari “Task Scheduler.” Meluncurkan “Task Scheduler” jalan pintas.
Ketika itu dimulai, lihat di bawah “Tindakan” dan pilih “Buat Task Dasar.”
Ini membuka Wisaya Tugas Dasar. Pertama, itu akan meminta Anda untuk memberi nama tugas dan memberikan deskripsi. Anda dapat memasukkan apa pun yang Anda inginkan di sini. Kami menelepon tugas "Cron," dan deskripsinya adalah, "tugas untuk memulai cron pada startup sistem." Sekarang, tekan "Selanjutnya."
Pada bagian berikut, kami mulai bisnis. Pertama, Windows ingin tahu kapan kita ingin menjalankan tugas. Pilih tombol Radio "ketika komputer mulai" dan klik "Selanjutnya."
Di bagian selanjutnya, kami ingin "memulai program." Opsi itu dipilih secara default, jadi klik "Selanjutnya."
Sekarang, kita harus menentukan program yang ingin kita jalankan, yaitu WSL. Masukkan yang berikut ke dalam kotak entri teks "Program / Script":
C: \ windows \ system32 \ wsl.exe
Kita juga perlu menambahkan beberapa argumen, karena semua yang telah kita lakukan sejauh ini adalah mulai WSL, tetapi di dalam WSL, kita perlu memberi tahu Ubuntu untuk memulai Cron. Jadi, di kotak "Tambahkan argumen", tambahkan:
sudo / usr / sbin / layanan cron mulai
Tekan "Next" sekali lagi, centang kotak yang bertuliskan "Buka dialog Properties ketika saya mengklik Selesai," dan kemudian klik "Selesai."
Tugas ini dibuat, tetapi kita harus melakukan satu hal terakhir untuk memastikan bahwa semuanya berfungsi. Sebuah jendela baru akan terbuka, yang menunjukkan ringkasan tugas yang Anda buat, tetapi hanya diatur untuk berjalan ketika Anda masuk. Kita perlu memilih tombol radio yang mengatakan "Jalankan apakah pengguna masuk atau tidak," dan kemudian tekan "OK."
Sekarang, mari kita uji tugas kita dengan dua cara. Pertama, di jendela utama penjadwal tugas, gulir ke bawah sampai Anda melihat nama tugas Anda. Jika Anda menggunakan nama "Cron," itu harus ditemukan di bagian atas daftar. Klik kanan tugas dan pilih "Run."
Kemudian, kembali ke terminal WSL Anda dan ketik
Status Cron Service Sudo
, Dan itu harus mengatakan bahwa Cron sedang berjalan. Jika tidak, periksa ulang apakah Anda memasukkan semuanya dengan benar pada langkah-langkah sebelumnya.
Jika semuanya bekerja dengan baik di cek pertama, saatnya untuk tes besar. Nyalakan kembali PC Anda, dan ketika Anda kembali, buka terminal WSL dan jalankan
Status Cron Service Sudo
, yang harus melaporkan bahwa cron sekarang sedang berjalan.
Selamat! Anda telah mengambil langkah pertama Anda ke dunia yang lebih besar dan otomatis. Dengan cron yang berjalan di latar belakang, Cronjobs yang Anda konfigurasi di WSL akan secara otomatis berjalan sesuai jadwal.