سؤال

أحاول كتابة واجهة ويب ل Crontab في Ruby باستخدام جوهرة Cronedit الممتازة. ذهبت عبر شفرة مصدر Cronab Dillon Cron's ووجدت أنها تقوم بتحديث ملف معين بحيث يتم تحديث البرنامج الخفي قائمة Cron أثناء الاجتياح التالي.

في رجل Crontab ل Vixiecron، يقول:

بالإضافة إلى ذلك، يتحقق Cron كل دقيقة لمعرفة ما إذا كان Modtime's Directory Directory الخاص به (أو MODTIME ON / ETC / Crontab) قد تغير، وإذا كان لديه، فسيقوم Cron بعد ذلك بفحص MODTIMES على جميع Crontabs وإعادة تحميل تلك التي تغيرت. وبالتالي لا يلزم إعادة تشغيل Cron كلما تم تعديل ملف Crontab. لاحظ أن الأمر Crontab (1) يقوم بتحديث MODTIME Directory Directory كلما تغير Crontab.

هل هناك أي منصة (أوبونتو، قبعة حمراء، Archlinux، Mac OS X) طريقة مستقلة للتأكد من أنه بعد تحرير ملف Cron يدويا، يقوم البرنامج الخفي بتحديثه دون تفشل؟

هل كانت مفيدة؟

المحلول 3

شكرا جزيلا غنبلر آرون. ذهبت للتو من التعليمات المصدرية لكل من "كلما" وجهايات "Cronedit" ل Ruby. يقوم كلاهما ب "Crontab -" الذي يحل محل ملف Cron الحالي مع إدخالات Cron المحدثة. وهذا يعني خلافا لسؤالي الأصلي، تستخدم هذه المكتبات أداة Crontab القياسية التي بدورها ستفعل أي تفاصيل ضرورية لتحديث البرنامج الخفي.

أعتقد أن أفضل منصة مستقلة، وكرون (ديلون، Vixie، Mcron وما إلى ذلك) طريقة لتجديد البرنامج الخفي هو استخدام أداة Crontab المرتبطة دائما. حتى عند التحرير برمجيا، يجب على برنامج المستخدم أن يمر ملف Cron الجديد إلى الأداة المساعدة Crontab التي ستفعل كل ما هو مطلوب بواسطة هذا النظام الأساسي / كرون معين.

لعبة، شكرا لك على التعليقات. ومع ذلك، أحاول تقديم واجهة الويب البسيطة التي يمكن للمستخدم تخصيصها من خلال شبكة الاتصالات العالمية فقط مثل تحرير ملف Crontab مباشرة.

شكرا جزيلا لكم على ردودكم!

نصائح أخرى

لا، ليس هناك. إذا كنت تعرف أنه vixiecron، فقم بتحديث طابع الزمني الدليل. خلاف ذلك، قد تكون قادرا على مزيفة ذلك: تعيين متغير ENV EDITOR قبل استدعاء crontab -e (الذي يجب أن يطرح محرر ل Crontab).

هذه الفكرة هي ضبط المحرر على بعض البرنامج مما يجعل التغيير. crontab -e سينتظر المحرر لإنهاء الملف وإعادة قراءة الملف وإخبار كرون بتغيير شيء ما.

إذا كان لديك نسخة قديمة من Cron، على الرغم من أنه لا يزال يجب عليك إعادة تشغيله. لكنني أشك في أنه يمكنك العثور على مثل هذه الإصدارات القديمة على أي شيء يعمل بنظام Linux أو Mac OS X.

سان الحديثة لينكس distros /etc/cron.d/ دليل حيث يمكنك وضع إدخال Crontab الخاص بك كملف منفصل. إذا كنت أتذكر بشكل صحيح، يحصل قراءة Cronfile الجديدة في غضون دقيقتين من المكتوبة

إذا كان هذا مهم، فلماذا لا تستخدم رافعة مختلفة؟ وبعبارة أخرى، هناك خياران:

Crontab 1: / do / بعض / جدا / خاص / شيء مع معلمات محددة أحتاج إلى تغيير الخ

Crontab 2: / do / ماذا / الاحتياجات / إلى / أنجز /

في # 2، المهمة هي المسؤولة عن تحديد وقت التشغيل ما يجب القيام به والقيام بذلك. مع هذا التصميم، فإن فكرة الحاجة إلى فهم كيفية عمل Crontab على بعض المستوى المفصل غير ذي صلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top