Miliar Foto/Shutterstock.com
Windows memiliki beberapa cara untuk mengotomatisasi tugas. Alat yang paling umum adalah Windows Task Scheduler, tetapi jika Anda menggunakan Windows Subsystem for Linux (WSL), ada juga daemon cron yang menjalankan tugas di latar belakang untuk instalasi WSL Anda.
Cron Tidak Berjalan Secara Default
Pada Windows 10 dan Windows 11, cron disertakan dengan lingkungan Linux seperti Ubuntu. Masalahnya adalah WSL tidak memulai cron secara otomatis, artinya tugas otomatis Anda tidak dijalankan secara default.
Untuk memperbaikinya, Anda dapat memulai cron secara manual setiap kali Anda membuka baris perintah, tetapi secara manual memulai alat yang seharusnya mengotomatiskan tugas agak tidak tepat.
Untungnya, ada cara mudah untuk memperbaikinya, dan itu memerlukan penggunaan Penjadwal Tugas.
Jika Anda belum pernah menggunakan cron di Linux untuk menjalankan tugas, lihat tutorial kita sebelumnya tentang cara menjadwalkan tugas di Linux. Untuk tujuan kita di sini, kita akan berasumsi bahwa Anda telah membuat beberapa pekerjaan cron di instalasi WSL Anda dan bahwa Anda memerlukan bantuan untuk memastikan bahwa pekerjaan itu berjalan alih-alih mengasuh cron sepanjang waktu.
Iklan
Untuk tutorial ini, kita akan menggunakan layanan sudo untuk memeriksa dan memulai cron, yang merupakan cara yang disarankan untuk menghentikan dan memulai layanan pada versi cararn Ubuntu—distribusi paling populer untuk WSL.
Juga, perhatikan bahwa tutorial ini mengasumsikan bahwa Anda memiliki hak administrator pada versi WSL Anda. Jika Anda adalah satu-satunya pengguna PC Anda dan Anda mengaktifkan WSL sendiri, maka Anda memiliki hak administrator.
Tip: Ini juga berfungsi di Subsistem Windows untuk Linux di Windows 11, tidak hanya di Windows 10.
TERKAIT: Cara Menjadwalkan Tugas di Linux: Pengantar File Crontab
Siapkan Linux
Hal pertama yang harus kita lakukan adalah membiarkan komputer memulai cron tanpa kata sandi. Saat Anda memulai layanan seperti cron, Anda menggunakan perintah Sudo service cron start. Tetapi perintah itu memerlukan kata sandi, yang tidak dapat diakses oleh Windows saat dijalankan. Cara mengatasinya adalah dengan mematikan persyaratan kata sandi untuk perintah ini.
Untuk melakukannya, buka jendela terminal WSL Anda dan ketik sudo visudo. Tekan Enter pada keyboard Anda, masukkan kata sandi Linux Anda, dan tekan tombol Enter lagi. Jika Anda menggunakan Ubuntu, ini akan membuka file “sudoers” menggunakan editor teks baris perintah Nano yang ramah-pemula. Sudoers adalah file untuk administrator sistem yang dapat mengubah hak istimewa dan hak akses bagi pengguna.
Tambahkan perintah berikut ke bagian bawah file sudoers, lalu tekan Ctrl+o untuk menyimpan dan Ctrl+x untuk keluar dari file.
%sudo ALL=NOPASSWD: /usr/sbin/service cron start
Perintah sudoers ini mengatakan bahwa setiap pengguna yang memiliki cukup hak istimewa untuk menggunakan perintah sudo (yang seharusnya menyertakan Anda) tidak memerlukan kata sandi untuk menjalankan perintah sudo service cron start, yang memulai cron daemon.
Iklan
Setelah Anda menyimpan file, Anda dapat memeriksa apakah perintah melakukan tugasnya dengan mengetikkan sudo service cron start, dan itu harus memulai cron tanpa meminta kata sandi. Jika itu berhasil, mari matikan cron lagi sehingga kita dapat menguji apakah tugas yang kita buat pada langkah berikutnya berfungsi dengan baik. Untuk melakukannya, jalankan sudo service cron stop.
Atur Cron di Penjadwal Tugas Windows
Itulah fase pertama dari perjalanan kita menuju otomatisasi cron. Mari kita beralih ke bagian 2 dengan Penjadwal Tugas. Ketuk tombol Windows pada keyboard, lalu cari “Penjadwal Tugas.” Luncurkan pintasan “Penjadwal Tugas”.
Saat dimulai, lihat di bawah bagian “Tindakan” dan pilih “Buat Tugas Dasar.”
Ini membuka Wizard Tugas Dasar. Pertama, itu akan meminta Anda untuk memberi nama tugas dan memberikan deskripsi. Anda dapat memasukkan apa pun yang Anda inginkan di sini. Kita menyebut tugas “cron”, dan deskripsinya adalah, “Tugas untuk memulai cron saat startup sistem.” Sekarang, tekan “Selanjutnya.”
Pada bagian berikut, kita turun ke bisnis. Pertama, Windows ingin tahu kapan kita ingin menjalankan tugas. Pilih tombol radio “When Computer Starts” dan klik “Next.”
Di bagian selanjutnya, kita ingin “Mulai Program.” Opsi itu dipilih secara default, jadi klik “Next.”
Iklan
Sekarang, kita harus menentukan program yang ingin kita jalankan, yaitu WSL. Masukkan yang berikut ini ke dalam kotak entri teks “Program/Script”: C:WindowsSystem32wsl.exe
Kita juga perlu menambahkan beberapa argumen, karena sejauh ini yang telah kita lakukan hanyalah memulai WSL, tetapi di dalam WSL, kita perlu memberi tahu Ubuntu untuk memulai cron. Jadi, di kotak “Tambahkan Argumen”, tambahkan: sudo /usr/sbin/service cron start
Tekan “Next” sekali lagi, centang kotak yang bertuliskan “Open Properties Dialog When I Click Finish,” lalu klik “Finish.”
Tugas dibuat, tetapi kita harus melakukan satu hal terakhir untuk memastikan semuanya berfungsi. Jendela baru akan terbuka, yang menunjukkan ringkasan tugas yang Anda buat, tetapi hanya diatur untuk dijalankan saat 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 hingga Anda melihat nama tugas Anda. Jika Anda menggunakan nama “cron”, nama itu harus ditemukan di bagian atas daftar. Klik kanan tugas dan pilih “Jalankan.”
Kemudian, kembali ke te
rminal WSL Anda dan ketik sudo service cron status, dan itu akan mengatakan bahwa cron sedang berjalan. Jika tidak, periksa kembali apakah Anda memasukkan semuanya dengan benar di langkah sebelumnya.
Iklan
Jika semuanya bekerja dengan baik pada pemeriksaan pertama, saatnya untuk ujian besar. Restart PC Anda, dan ketika Anda kembali, buka terminal WSL dan jalankan sudo service cron status, yang akan melaporkan bahwa cron sekarang sedang berjalan.
Selamat! Anda telah mengambil langkah pertama ke dunia yang lebih besar dan otomatis. Dengan cron berjalan di latar belakang, cronjobs yang Anda konfigurasikan di WSL akan otomatis berjalan sesuai jadwal.