table of contents
| SYSTEMD.TIMER(5) | systemd.timer | SYSTEMD.TIMER(5) |
الاسم¶
systemd.timer - تهيئة وحدة المؤقت
موجز¶
timer.timer
الوصف¶
ملف تهيئة وحدة ينتهي اسمه بـ ".timer" يرمز معلومات حول مؤقت يُتحكم به ويُشرف عليه systemd، للتفعيل القائم على المؤقت.
يسرد دليل المستخدم هذا خيارات التهيئة الخاصة بنوع الوحدة هذا. انظر systemd.unit(5) للخيارات المشتركة لجميع ملفات تهيئة الوحدات. تُهيأ عناصر التهيئة المشتركة في القسمين العامين [Unit] و[Install]. تُهيأ خيارات التهيئة الخاصة بالمؤقت في القسم [Timer].
يجب أن يوجد ملف وحدة مطابق لكل ملف مؤقت، يصف الوحدة التي سيتم تفعيلها عند انقضاء المؤقت. مبدئيًا، يُفعّل خدمة بنفس اسم المؤقت (باستثناء اللاحقة). مثال: ملف مؤقت foo.timer يُفعّل خدمة مطابقة foo.service. يمكن التحكم بالوحدة المراد تفعيلها بواسطة Unit= (انظر أدناه).
لاحظ أنه في حال كانت الوحدة المراد تفعيلها نشطة بالفعل عند انقضاء المؤقت، فإنها لا تُعاد تشغيلها، بل تُترك قيد التشغيل ببساطة. لا يوجد مفهوم لإنشاء مثيلات خدمة جديدة في هذه الحالة. ونتيجة لذلك، فإن الخدمات التي تحتوي على RemainAfterExit=yes (التي تبقى مستمرة حتى بعد خروج العملية الرئيسية للخدمة) عادةً ما تكون غير مناسبة للتفعيل عبر المؤقتات المتكررة، لأنها ستفعّل مرة واحدة فقط، ثم تبقى إلى الأبد. يمكن تفعيل وحدات الهدف، التي لا تُلغى تنشيطها آليًا مبدئيًا، بشكل متكرر بواسطة المؤقتات عن طريق تعيين StopWhenUnneeded=yes عليها. سيؤدي هذا إلى إيقاف وحدة الهدف فور تفعيلها، إذا لم تكن تابعة لوحدة أخرى قيد التشغيل.
اعتمادات آلية¶
التبعيات الضمنية¶
تُضاف التبعيات التالية ضمنيًا:
الاعتمادات المبدئية¶
تُضاف الاعتماديات التالية ما لم يُضبط DefaultDependencies=no:
الخيارات¶
قد تتضمن ملفات وحدات المؤقت أقسام [Unit] و [Install]، الموصوفة في systemd.unit(5).
يجب أن تتضمن ملفات وحدات المؤقت قسم [Timer]، الذي يحمل معلومات حول المؤقت الذي تعرفه. الخيارات الخاصة بقسم [Timer] لوحدات المؤقت هي التالية:
OnActiveSec=, OnBootSec=, OnStartupSec=, OnUnitActiveSec=, OnUnitInactiveSec=
جدول 1. الإعدادات
ونقاط
بدئها
| الإعداد | المعنى |
| OnActiveSec= | يُعرِّف مؤقتًا بالنسبة للحظة التي تُفعّل فيها وحدة المؤقت نفسها. |
| OnBootSec= | يُعرِّف مؤقتًا بالنسبة لوقت إقلاع الجهاز. في الحاويات، بالنسبة لمثيل مدير النظام، يُرسم هذا إلى OnStartupSec=، مما يجعلهما متكافئين. |
| OnStartupSec= | يُعرِّف مؤقتًا بالنسبة لوقت بدء تشغيل مدير الخدمة لأول مرة. بالنسبة لوحدات مؤقت النظام، هذا مشابه جدًا لـ OnBootSec= حيث يُبدأ مدير خدمة النظام عمومًا في وقت مبكر جدًا عند الإقلاع. إنه مفيد بشكل أساسي عند تهيئته في وحدات تعمل في مدير الخدمة لكل مستخدم، حيث يُبدأ مدير خدمة المستخدم عمومًا عند أول تسجيل دخول فقط، وليس بالفعل أثناء الإقلاع. |
| OnUnitActiveSec= | يُعرِّف مؤقتًا بالنسبة لآخر مرة فُعّلت فيها الوحدة التي تفعّلها وحدة المؤقت. |
| OnUnitInactiveSec= | يُعرِّف مؤقتًا بالنسبة لآخر مرة أُلغي فيها تنشيط الوحدة التي تفعّلها وحدة المؤقت. |
يمكن دمج توجيهات متعددة من نفس النوع ومن أنواع مختلفة، وفي هذه الحالة ستُفعّل وحدة المؤقت كلما انقضى أي من تعبيرات المؤقت المحددة. على سبيل المثال، بدمج OnBootSec= و OnUnitActiveSec=، يمكن تعريف مؤقت ينقضي على فترات منتظمة ويُفعّل خدمة محددة في كل مرة. علاوة على ذلك، يمكن دمج تعبيرات الوقت الرتيبة وتعبيرات التقويم OnCalendar= في نفس وحدة المؤقت.
الوسائط للتوجيهات هي فترات زمنية مُهيأة بالثواني. مثال: "OnBootSec=50" تعني 50 ثانية بعد الإقلاع. قد تتضمن الوسيطة أيضًا وحدات زمنية. مثال: "OnBootSec=5h 30min" تعني 5 ساعات و30 دقيقة بعد الإقلاع. للتفاصيل حول صياغة الفترات الزمنية، انظر systemd.time(7).
إذا كان مؤقت مُهيأ بـ OnBootSec= أو OnStartupSec= قد مضى بالفعل عند تفعيل وحدة المؤقت، فسينقضي فورًا وستُبدأ الوحدة المُهيأة. هذا ليس هو الحال للمؤقتات المُعرفة في التوجيهات الأخرى.
هذه مؤقتات رتيبة، مستقلة عن وقت الساعة الحائطية والمناطق الزمنية. إذا عُلّق الكمبيوتر مؤقتًا، تتوقف الساعة الرتيبة عمومًا أيضًا. لاحظ أنه إذا استُخدم WakeSystem=، فتُختار ساعة رتيبة مختلفة تستمر في التقدم أثناء تعليق النظام وبالتالي يمكن استخدامها كمُحفّز لاستئناف النظام.
إذا عُيّنت السلسلة الفارغة لأي من هذه الخيارات، فتُعاد تعيين قائمة المؤقتات (كل من المؤقتات الرتيبة ومؤقتات OnCalendar=، انظر أدناه)، ولن يكون لجميع التعيينات السابقة أي تأثير.
لاحظ أن المؤقتات لا تنقضي بالضرورة في الوقت المحدد المُهيأ بهذه الإعدادات، لأنها تخضع لإعداد AccuracySec= أدناه.
OnCalendar=
لاحظ أن المؤقتات لا تنقضي بالضرورة في الوقت المحدد المُهيأ بهذا الإعداد، لأنه يخضع لإعداد AccuracySec= أدناه.
يمكن تحديده أكثر من مرة، وفي هذه الحالة ستُفعّل وحدة المؤقت كلما انقضى أي من التعبيرات المحددة. علاوة على ذلك، يمكن دمج المؤقتات التقويمية والمؤقتات الرتيبة (انظر أعلاه) داخل نفس وحدة المؤقت.
إذا عُيّنت السلسلة الفارغة لأي من هذه الخيارات، فتُعاد تعيين قائمة المؤقتات (كل من مؤقتات OnCalendar= والمؤقتات الرتيبة، انظر أعلاه)، ولن يكون لجميع التعيينات السابقة أي تأثير.
لاحظ أن المؤقتات التقويمية قد تُفعّل في أوقات غير متوقعة إذا لم تكن ساعة الوقت الحقيقي للنظام مضبوطة بشكل صحيح. تحديدًا، على الأنظمة التي تفتقر إلى ساعة وقت حقيقي (RTC) مدعومة ببطارية، قد يكون من الحكمة تمكين systemd-time-wait-sync.service لضمان ضبط الساعة على مصدر وقت شبكي قبل إعداد حدث المؤقت. وحدات المؤقت التي تحتوي على تعبير OnCalendar= واحد على الأقل تُرتّب آليًا بعد time-sync.target، والذي يُرتّب systemd-time-wait-sync.service قبله.
عندما يُوضع النظام في حالة سكون مؤقت (أي تعليق النظام أو الإسبات)، لا تتوقف ساعة الوقت الحقيقي. عندما ينقضي مؤقت تقويمي أثناء نوم النظام، لن يُتعامل معه فورًا، ولكن بمجرد استئناف النظام لاحقًا، سيلحق بالركب ويعالج جميع المؤقتات التي تفعّلت أثناء نوم النظام. لاحظ أنه إذا انقضى مؤقت تقويمي أكثر من مرة أثناء نوم النظام المستمر، فسيؤدي المؤقت إلى تفعيل خدمة واحدة فقط. إذا كان WakeSystem= (انظر أدناه) مُفعّلاً، فإن حدث وقت تقويمي ينقضي أثناء تعليق النظام سيؤدي إلى إيقاظ النظام (بشرط أن تدعم أجهزة النظام وظيفة الإيقاظ المُحفّز بالوقت).
أُضيف في الإصدارة 197.
AccuracySec=
لاحظ أن هذا الإعداد هو خيار توفير طاقة في المقام الأول يسمح بتجميع إيقاظات وحدة المعالجة المركزية. لا ينبغي الخلط بينه وبين RandomizedDelaySec= (انظر أدناه) الذي يضيف قيمة عشوائية إلى الوقت الذي سينقضي فيه المؤقت التالي والذي غرضه عكس ذلك: تمديد انقضاء أحداث المؤقت على فترة أطول لتقليل ذروات عبء العمل. لمزيد من التفاصيل والتوضيحات وكيفية عمل كلا الإعدادين معًا، انظر أدناه.
أُضيف في الإصدارة 209.
RandomizedDelaySec=
هذا الإعداد مفيد لتمديد توزيع أحداث المؤقت المُهيأة بشكل مشابه على فترة زمنية معينة، لمنعها من الإطلاق جميعًا في نفس الوقت، مما قد يؤدي إلى ازدحام الموارد على النظام المحلي.
لاحظ العلاقة مع AccuracySec= أعلاه: الأخير يسمح لمدير الخدمة بتجميع أحداث المؤقت ضمن نطاق زمني محدد لتقليل الإيقاظات، بينما يفعل هذا الإعداد العكس: فهو يمدد أحداث المؤقت على فترة، مما يجعل من غير المحتمل أن تُطلق في وقت واحد. إذا استُخدم RandomizedDelaySec= و AccuracySec= معًا، يُضاف التأخير العشوائي أولاً، ثم يُزاح النتيجة ربما بشكل أكبر لتجميعها مع أحداث مؤقت أخرى تحدث على النظام. كما ذُكر أعلاه، المبدئي لـ AccuracySec= هو دقيقة واحدة ولـ RandomizedDelaySec= هو 0، مما يشجع على تجميع أحداث المؤقت. لتمديد أحداث المؤقت بشكل مثالي على نطاق معين من الوقت، اضبط AccuracySec=1us و RandomizedDelaySec= على قيمة أعلى.
أُضيف في الإصدارة 229.
FixedRandomDelay=
هذا الإعداد له تأثير فقط إذا كان RandomizedDelaySec= ليس 0. الافتراضيين إلى false.
أُضيف في الإصدار 247.
RandomizedOffsetSec=
يشبه هذا الإعداد إلى حد كبير RandomizedDelaySec=، حيث يُستخدم لتوزيع أحداث المؤقت لمنع إطلاقها جميعًا مرة واحدة. ومع ذلك، فإن هذا الإعداد مفيد جدًا لمنع ازدحام الموارد على خدمة بعيدة، من مجموعة من العملاء المكونة بشكل مماثل. على عكس RandomizedDelaySec=، يطبق هذا الإعداد إزاحته دون اعتبار لوقت بدء تشغيل المدير. يحافظ هذا على دورية أحداث OnCalendar= المكونة عبر عمليات إعادة تشغيل المدير.
على سبيل المثال، لنفترض أنك تدير خدمة نسخ احتياطي ولديك مجموعة من أجهزة الكمبيوتر المحمولة التي ترغب في عمل نسخ احتياطية أسبوعيًا. لتوزيع الحمل على خدمة النسخ الاحتياطي، يجب أن يختار كل كمبيوتر محمول يومًا عشوائيًا من أيام الأسبوع لتحميل نسخه الاحتياطية. يمكن تحقيق ذلك عن طريق تعيين OnCalendar= إلى "weekly"، ثم تكوين RandomizedDelaySec= بقيمة "5 days" مع تمكين FixedRandomDelay=. لنفترض أن بعض أجهزة الكمبيوتر المحمولة تختار عشوائيًا تأخيرًا لمدة 4 أيام. إذا تمت إعادة تشغيل هذا الكمبيوتر المحمول أكثر من ذلك، فلن يتم إطلاق المؤقت أبدًا: في كل إقلاع جديد، يتم إعادة تشغيل التأخير لمدة 4 أيام ولن ينتهي بحلول وقت الإغلاق التالي. بدلاً من ذلك، يجب استخدام RandomizedOffsetSec=، الذي سيحافظ على الإيقاع الأسبوعي المكون لأحداث المؤقت، حتى عبر عمليات إعادة التشغيل.
أُضيف في الإصدار 258.
DeferReactivation=
يكون لهذا الإعداد تأثير فقط إذا تم تحديد مؤقت زمني حقيقي باستخدام OnCalendar=. المبدئي هو false.
أُضيف في الإصدار 257.
OnClockChange=, OnTimezoneChange=
أُضيف في الإصدارة 242.
Unit=
Persistent=
استخدم systemctl clean --what=state ... على وحدة المؤقت لإزالة ملف الطابع الزمني الذي يحتفظ به هذا الخيار من القرص. على وجه الخصوص، استخدم هذا الأمر قبل إلغاء تثبيت وحدة مؤقت. راجع systemctl(1) للحصول على التفاصيل.
أُضيف في الإصدارة 212.
WakeSystem=
لاحظ أن هذه الوظيفة تتطلب امتيازات وبالتالي فهي متاحة بشكل عام فقط في مدير خدمة النظام.
لاحظ أن سلوك مؤقتات الساعة الرتيبة (كما تم تكوينها باستخدام OnActiveSec=, OnBootSec=, OnStartupSec=, OnUnitActiveSec=, OnUnitInactiveSec=، انظر أعلاه) يتغير اعتمادًا على هذا الخيار. إذا كان خطأ، يتم استخدام ساعة رتيبة يتم إيقافها مؤقتًا أثناء سكون النظام (CLOCK_MONOTONIC)، وإذا كان صحيحًا، يتم استخدام ساعة رتيبة مختلفة تستمر في التقدم أثناء سكون النظام (CLOCK_BOOTTIME)، راجع clock_getres(2) للحصول على التفاصيل.
أُضيف في الإصدارة 212.
RemainAfterElapse=
أُضيف في الإصدارة 229.
تحقق من systemd.unit(5)، و systemd.exec(5)، و systemd.kill(5) لمزيد من الإعدادات.
انظر أيضًا¶
سيتم تعيين متغيرات بيئة تحتوي على تفاصيل حول التشغيل للوحدات التي تم تشغيلها. راجع قسم "متغيرات البيئة التي يتم تعيينها أو نشرها بواسطة مدير الخدمة" في systemd.exec(5) لمزيد من التفاصيل.
systemd(1), systemctl(1), systemd.unit(5), systemd.service(5), systemd.time(7), systemd.directives(7), systemd-system.conf(5), prctl(2)
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 260.1 |