كيفية بدء تشغيل Cron في WSL تلقائيًا على نظامي التشغيل Windows 10 و 11
لدى Windows عدة طرق لأتمتة المهام. الأداة الأكثر شيوعًا هي برنامج جدولة مهام Windows ، ولكن إذا كنت تستخدم نظام Windows الفرعي لنظام التشغيل Linux (WSL) ، فهناك أيضًا برنامج cron الخفي الذي يقوم بتشغيل مهام الخلفية لتثبيت WSL.
لا يعمل Cron افتراضيًا
في نظامي التشغيل Windows 10 و Windows 11 ، تأتي cron مرفقة مع بيئات Linux مثل Ubuntu. تكمن المشكلة في أن WSL لا يبدأ تشغيل cron تلقائيًا ، مما يعني أن مهامه الآلية لا تعمل افتراضيًا.
للتغلب على هذه المشكلة ، يمكنك بدء تشغيل cron يدويًا في كل مرة تفتح فيها سطر الأوامر ، ولكن بدء تشغيل أداة من المفترض أن تقوم بأتمتة المهام يدويًا يشبه فقدان عقلك.
هناك طريقة سهلة لإصلاح هذه المشكلة وتتطلب استخدام برنامج جدولة المهام.
إذا لم تستخدم cron على Linux مطلقًا لتشغيل المهام ، فراجع برنامجنا التعليمي السابق حول جدولة المهام على Linux . لأغراضنا هنا ، سنفترض أنك قمت بالفعل بإنشاء بعض وظائف cron في تثبيت WSL وتحتاج إلى مساعدة للتأكد من أنها تعمل بدلاً من الاهتمام بـ cron طوال الوقت.
في هذا البرنامج التعليمي ، سنستخدم sudo service
للتحقق من cron وبدء تشغيله ، وهي الطريقة الموصى بها لإيقاف الخدمات وبدء تشغيلها في الإصدارات الحديثة من Ubuntu ، التوزيع الأكثر شيوعًا لـ WSL.
لاحظ أيضًا أن هذا البرنامج التعليمي يفترض أن لديك حقوق المسؤول لإصدار WSL الخاص بك. إذا كنت المستخدم الوحيد على جهاز الكمبيوتر الخاص بك وقمت بتمكين WSL بنفسك ، فإنك تتمتع بحقوق المسؤول.
نصيحة: يعمل هذا أيضًا على نظام Windows الفرعي لنظام Linux على Windows 11 ، وليس فقط Windows 10.
تحضير لينكس
أول شيء يتعين علينا القيام به هو السماح للكمبيوتر ببدء تشغيل cron بدون كلمة مرور. عند بدء تشغيل خدمة مثل cron ، تستخدم الأمر sudo service cron start
. لكن هذا الأمر يتطلب كلمة مرور لن يتمكن Windows من الوصول إليها عند بدء تشغيله. الطريقة للتغلب على ذلك هي تعطيل متطلبات كلمة المرور لهذا الأمر.
افتح نافذة WSL الطرفية واكتب sudo visudo
. اضغط على Enter بلوحة المفاتيح ، وأدخل كلمة مرور Linux الخاصة بك ، واضغط على مفتاح Enter مرة أخرى. إذا كنت تستخدم Ubuntu ، فسيؤدي ذلك إلى فتح ملف “sudoers” باستخدام محرر نصوص سطر أوامر Nano الصديق للمبتدئين . Sudoers هو ملف لمسؤولي النظام يمكنه تغيير الامتيازات وحقوق الوصول للمستخدمين.
أضف الأمر التالي إلى نهاية ملف sudoers ثم اضغط على Ctrl + o للحفظ و Ctrl + x للخروج من الملف.
%sudo ALL=NOPASSWD: /usr/sbin/service cron start
يقول أمر sudoers هذا أن أي مستخدم لديه امتيازات كافية لاستخدام الأمر sudo (والذي يجب أن يشملك) لا يحتاج إلى كلمة مرور لتشغيل الأمر sudo service cron start
، والذي يبدأ تشغيل cron daemon.
بمجرد حفظ الملف ، يمكنك التحقق من أن الأمر يقوم بعمله عن طريق الكتابة sudo service cron start
، ويجب أن يبدأ cron دون طلب كلمة مرور. إذا نجح ذلك ، فلنقم بإيقاف تشغيل cron مرة أخرى حتى نتمكن من اختبار أن المهمة التي نقوم بإنشائها في الخطوة التالية تعمل بشكل صحيح. للقيام بذلك ، يرجى الركض sudo service cron stop
.
تكوين Cron في برنامج جدولة مهام Windows
هذه هي المرحلة الأولى من رحلتنا إلى أتمتة cron. دعنا ننتقل إلى الجزء 2 باستخدام برنامج جدولة المهام. اضغط على مفتاح Windows على لوحة المفاتيح ثم ابحث عن “برنامج جدولة المهام”. قم بتشغيل الاختصار “برنامج جدولة المهام”.
ابحث في قسم “الإجراءات” وحدد “إنشاء مهمة أساسية”.
أولاً ، سيطلب منك تسمية المهمة ووصفها. يمكنك إدخال ما تريد هنا. نسمي المهمة “cron” والوصف هو “مهمة لبدء cron عند بدء تشغيل النظام”. الآن اضغط على “التالي”.
ننتقل إلى العمل. أولاً ، يريد Windows معرفة متى نريد تشغيل المهمة. اختر زر الاختيار “عند بدء تشغيل الكمبيوتر” وانقر على “التالي”.
نريد “بدء برنامج”. يتم تحديد هذا الخيار افتراضيًا ، لذا انقر فوق “التالي”.
الآن ، علينا تحديد البرنامج الذي نريد تشغيله ، وهو WSL. أدخل ما يلي في مربع إدخال نص “البرنامج / البرنامج النصي”:C:\Windows\System32\wsl.exe
نظرًا لأن كل ما فعلناه حتى الآن هو بدء WSL ، ولكن داخل WSL ، نحتاج إلى إخبار Ubuntu ببدء cron. لذلك ، في مربع “إضافة وسيطات” ، أضف:sudo /usr/sbin/service cron start
اضغط على “التالي” مرة أخرى ، حدد المربع الذي يقول “فتح مربع حوار الخصائص عند النقر فوق” إنهاء “ثم انقر فوق” إنهاء “.
لكن علينا أن نفعل شيئًا أخيرًا للتأكد من أن كل شيء يعمل. ستفتح نافذة جديدة تعرض ملخص المهمة التي قمت بإنشائها ، لكنها مهيأة للتشغيل فقط عندما تقوم بتسجيل الدخول. نحتاج إلى تحديد زر الاختيار الذي يقول “تشغيل إذا قام المستخدم بتسجيل الدخول أم لا” ثم الضغط على “موافق”.
في نافذة برنامج جدولة المهام الرئيسية ، قم بالتمرير لأسفل حتى ترى اسم مهمتك. إذا استخدمت الاسم “كرون” ، فيجب أن يكون في أعلى القائمة. انقر بزر الماوس الأيمن على المهمة وحدد “تشغيل”.
ثم ارجع إلى محطة WSL الخاصة بك واكتب sudo service cron status
، ويجب أن تقول أن cron قيد التشغيل. إذا لم يكن الأمر كذلك ، فتحقق من إدخال كل شيء بشكل صحيح في الخطوات أعلاه.
إذا كان كل شيء يعمل بشكل جيد في الفحص الأول ، فقد حان وقت الاختبار الكبير. أعد تشغيل جهاز الكمبيوتر الخاص بك وعندما تعود ، افتح محطة WSL وتشغيلها sudo service cron status
، والتي يجب أن تبلغ عن أن cron قيد التشغيل الآن.
تهانينا! لقد اتخذت خطوتك الأولى نحو عالم آلي أكبر. مع تشغيل cron في الخلفية ، سيتم تشغيل cronjobs التي قمت بتكوينها في WSL تلقائيًا كما هو مقرر.