MACHINECTL(1)

الاسم
machinectl - التحكم في مدير آلات systemd

موجز

machinectl [OPTIONS...] {COMMAND} [NAME...]

الوصف

يمكن استخدام machinectl لاستبطان حالة مدير تسجيل الآلات الافتراضية والحاويات systemd-machined.service(8) الخاص بـ systemd(1) والتحكم فيها.

يمكن استخدام machinectl لتنفيذ عمليات على الآلات والصور. تُعد الآلات بهذا المعنى نُسخا عاملة من:

    • الآلات الافتراضية (VMs) التي تحاكي العتاد لتشغيل نُسخ أنظمة تشغيل (OS) كاملة (بما في ذلك نواتها) في بيئة افتراضية فوق نظام تشغيل المضيف.

    • الحاويات التي تتشارك العتاد ونواة نظام التشغيل مع نظام تشغيل المضيف، من أجل تشغيل نُسخ مساحة مستخدم لنظام التشغيل فوق نظام تشغيل المضيف.

    • نظام المضيف نفسه.

تُعرّف الآلات بأسماء تتبع نفس قواعد أسماء مضيفي UNIX وDNS. للتفاصيل، انظر أدناه.

تُنشأ الآلات من صور قرص أو صور نظام ملفات غالبا — ولكن ليس بالضرورة — تحمل نفس اسم الآلات التي تعمل منها. قد تكون الصور بهذا المعنى:

    • أشجار الأدلة التي تحتوي على نظام تشغيل، بما في ذلك أدلة المستوى الأعلى /usr/ و /etc/، وما إلى ذلك.

    • أجزاء فرعية من btrfs تحتوي على أشجار نظام تشغيل، شبيهة بأشجار المجلدات العادية.

    • ملفات صور قرص "خام" ثنائية تحتوي على جداول أقسام MBR أو GPT وأنظمة ملفات لينكس.

    • وبالمثل، أجهزة كتلية تحتوي على جداول أقسام MBR أو GPT وأنظمة ملفات.

    • شجرة نظام ملفات نظام تشغيل المضيف نفسه.

يمكن تنزيل الصور واستيرادها وتصديرها عبر أداة importctl(1).

الأوامر

الأوامر التالية مفهومة:

  أوامر الآلة

list
    يسرد الآلات الافتراضية والحاويات التي تعمل حاليا (المتصلة). لسرد صور الآلات التي يمكن تشغيلها، استخدم list-images (انظر أدناه). لاحظ أن هذا الأمر يخفي الآلة الخاصة ".host" مبدئيا. استخدم مفتاح --all لإظهارها.

    أُضيف في الإصدارة 206.

status NAME...
    يعرض معلومات حالة وقت التشغيل حول آلة افتراضية واحدة أو أكثر أو حاويات، متبوعة بأحدث بيانات السجل من المجلة. هذه الوظيفة مخصصة لإنتاج مخرجات مقروءة للبشر. إذا كنت تبحث عن مخرجات قابلة للتحليل حاسوبيا، فاستخدم show بدلا منها. لاحظ أن بيانات السجل المعروضة يبلغ عنها مدير الآلة الافتراضية أو الحاوية، وغالبا ما تحتوي على مخرجات طرفية للآلة، ولكن ليس بالضرورة محتويات مجلة الآلة نفسها.

    أُضيف في الإصدارة 206.

show [NAME...]
    يعرض خصائص آلة افتراضية واحدة أو أكثر أو حاويات مسجلة أو المدير نفسه. إذا لم يُحدد أي وسيط، فستُعرض خصائص المدير. إذا حُدد NAME، فستُعرض خصائص هذه الآلة الافتراضية أو الحاوية. تُكبت الخصائص الفارغة مبدئيا. استخدم --all لإظهارها أيضًا. لاختيار خصائص معينة لعرضها، استخدم --property=. هذا الأمر مخصص للاستخدام عندما تكون المخرجات القابلة للتحليل حاسوبيا مطلوبة، ولا يطبع شجرة مجموعة التحكم أو مدخلات المجلة. استخدم status إذا كنت تبحث عن مخرجات منسقة مقروءة للبشر.

    أُضيف في الإصدارة 206.

start NAME...
    يشغل حاوية كخدمة نظام، باستخدام systemd-nspawn(1). هذا يشغل systemd-nspawn@.service، المُنشأة لاسم الآلة المحدد، بشكل مشابه لتأثير systemctl start على اسم الخدمة. يبحث systemd-nspawn عن صورة حاوية بالاسم المحدد في /var/lib/machines/ (ومسارات بحث أخرى، انظر أدناه) ويشغلها. استخدم list-images (انظر أدناه) لسرد صور الحاويات المتاحة للتشغيل.

    لاحظ أن systemd-machined.service(8) يتصل أيضًا بمجموعة متنوعة من مديري الحاويات والآلات الافتراضية الآخرين، و systemd-nspawn هو مجرد واحد منها. يمكن استخدام معظم الأوامر المتاحة في machinectl على الحاويات أو الآلات الافتراضية التي يتحكم فيها مديرون آخرون، وليس فقط systemd-nspawn. يتطلب تشغيل الآلات الافتراضية وصور الحاويات على هؤلاء المديرين أدوات خاصة بكل مدير.

    لتشغيل حاوية بشكل تفاعلي على سطر الأوامر مع وصول كامل إلى طرفية الحاوية، يرجى استدعاء systemd-nspawn مباشرة. لإيقاف حاوية عاملة، استخدم machinectl poweroff.

    أُضيف في الإصدارة 219.

login [NAME]
    يفتح جلسة ولوج طرفية تفاعلية في حاوية أو على المضيف المحلي. إذا قُدم وسيط، فإنه يشير إلى آلة الحاوية المراد الاتصال بها. إذا لم يُحدد أي وسيط، أو إذا حُدد اسم الحاوية كسلسلة فارغة، أو إذا حُدد اسم الآلة الخاص ".host" (انظر أدناه)، فسيُجرى الاتصال بالمضيف المحلي بدلا من ذلك. سيؤدي هذا إلى إنشاء اتصال TTY بحاوية معينة أو بالمضيف المحلي ويطلب تنفيذ getty عليها. لاحظ أن هذا مدعوم فقط للحاويات التي تشغل systemd(1) كنظام بدء.

    سيفتح هذا الأمر محث ولوج كامل على الحاوية أو المضيف المحلي، والذي يطلب بعد ذلك اسم المستخدم وكلمة المرور. استخدم shell (انظر أدناه) أو systemd-run(1) مع مفتاح --machine= لاستدعاء أمر واحد مباشرة، إما بشكل تفاعلي أو في الخلفية.

    أُضيف في الإصدارة 209.

shell [[NAME@]NAME [PATH [ARGUMENTS...]]]
    يفتح جلسة صدفة تفاعلية في حاوية أو على المضيف المحلي. يشير الوسيط الأول إلى آلة الحاوية المراد الاتصال بها. إذا لم يُحدد أي وسيط، أو إذا حُدد اسم الآلة كسلسلة فارغة، أو إذا حُدد اسم الآلة الخاص ".host" (انظر أدناه)، فسيُجرى الاتصال بالمضيف المحلي بدلا من ذلك. يعمل هذا بشكل مشابه لـ login، ولكنه يستدعي عملية مستخدم على الفور. يشغل هذا الأمر الملف التنفيذي المحدد بالوسائط المحددة، أو الصدفة المبدئية للمستخدم إذا لم تُحدد، أو /bin/sh إذا لم تُوجد صدفة مبدئية. يمكن اختيار مستخدم مختلف مبدئيا باستخدام --uid=، أو ببادئة اسم الآلة باسم مستخدم وعلامة "@". استخدم --setenv= لضبط متغيرات البيئة للعملية المنفذة.

    لاحظ أن machinectl shell لا ينقل رمز/حالة الخروج لعملية الصدفة المستدعاة. استخدم systemd-run بدلا من ذلك إذا كانت هذه المعلومات مطلوبة (انظر أدناه).

    يُعد استخدام أمر shell بدون وسائط (وبالتالي استدعاء الصدفة أو الأمر المنفذ على المضيف المحلي)، مشابها في نواح كثيرة لجلسة su(1)، ولكن على عكس su، فإنه يعزل الجلسة الجديدة تماما عن الجلسة الأصلية، بحيث لا تتشارك في أي خصائص عملية أو جلسة وتكون في حالة نظيفة ومحددة جيدا. ستُتتبع في جلسات utmp، ولوج، وتدقيق، وأمن، وحلقة مفاتيح جديدة، ولن ترث أي متغيرات بيئة أو قيود موارد، من بين خصائص أخرى.

    لاحظ أنه يمكن استخدام systemd-run(1) مع مفتاحه --machine= بدلا من أمر machinectl shell، ويسمح بالتشغيل غير التفاعلي، وضبط أكثر تفصيلا ومنخفص المستوى للوحدة المستدعاة، بالإضافة إلى الوصول إلى معلومات وقت التشغيل ورمز/حالة الخروج لعملية الصدفة المستدعاة. على وجه الخصوص، استخدم مفتاح --wait لـ systemd-run لنقل معلومات حالة الخروج للعملية المستدعاة. استخدم مفتاح --pty لـ systemd-run للحصول على صدفة تفاعلية، بشكل مشابه لـ machinectl shell. وبشكل عام، يُفضل systemd-run لأغراض البرمجة النصية. ومع ذلك، لاحظ أن systemd-run قد يتطلب امتيازات أعلى من machinectl shell.

    أُضيف في الإصدارة 225.

enable NAME..., disable NAME...
    يفعّل أو يعطّل حاوية كخدمة نظام لتبدأ عند إقلاع النظام، باستخدام systemd-nspawn(1). يؤدي هذا إلى تفعيل أو تعطيل systemd-nspawn@.service، المُنشأة لاسم الآلة المحدد، بشكل مشابه لتأثير systemctl enable أو systemctl disable على اسم الخدمة.

    يعيد هذا الأمر تحميل تهيئة مدير النظام ضمنيا بعد إكمال العملية. لاحظ أن هذا الأمر لا يشغل الحاويات التي يُجرى العمل عليها أو يوقف تشغيلها ضمنيا. إذا كان ذلك مطلوبا، فاجمع بين الأمر ومفتاح --now.

    أُضيف في الإصدارة 219.

poweroff NAME...
    إيقاف تشغيل آلة واحدة أو أكثر. بالنسبة للأجهزة الافتراضية التي يديرها systemd-vmspawn(1)، يُرسل هذا طلب إيقاف تشغيل ACPI عبر QMP. بالنسبة للحاويات، يُرسل هذا SIGRTMIN+4 إلى عملية التهيئة للحاوية، مما يتسبب في إغلاق أنظمة التهيئة المتوافقة مع systemd بشكل نظيف. لا تعمل هذه العملية على الحاويات التي لا تشغل نظام تهيئة متوافق مع systemd(1)، مثل sysvinit. استخدم stop كاسم مستعار لـ poweroff. استخدم terminate (انظر أدناه) لإنهاء آلة فورًا دون إغلاقها بشكل نظيف.

    أُضيف في الإصدارة 212.

reboot NAME...
    إعادة تشغيل آلة واحدة أو أكثر. بالنسبة للأجهزة الافتراضية التي يديرها systemd-vmspawn(1)، يُرسل هذا طلب إعادة تعيين النظام عبر QMP. بالنسبة للحاويات، يُرسل هذا SIGINT إلى عملية التهيئة للحاوية، وهو ما يعادل تقريبًا الضغط على Ctrl+Alt+Del على نظام غير محتوى، وهو متوافق مع الحاويات التي تشغل أي مدير نظام. استخدم restart كاسم مستعار لـ reboot.

    أُضيف في الإصدارة 209.

pause اسم...
    إيقاف آلة واحدة أو أكثر مؤقتًا. بالنسبة للأجهزة الافتراضية التي يديرها systemd-vmspawn(1)، يُجمد هذا تنفيذ vCPU على مستوى المراقب الافتراضي — لا يتم إخطار نظام تشغيل الضيف ولا يلاحظ تعليق ACPI. من منظور الضيف، يتوقف الوقت ببساطة حتى تُستأنف الآلة باستخدام resume.

    أُضيف في الإصدار 261.

resume اسم...
    استئناف آلة واحدة أو أكثر كانت موقوفة سابقًا. يُعيد هذا تشغيل التنفيذ بعد pause.

    أُضيف في الإصدار 261.

terminate NAME...
    ينهي آلة افتراضية أو حاوية على الفور، دون إيقاف تشغيلها بشكل نظيف. يؤدي هذا إلى قتل جميع عمليات الآلة الافتراضية أو الحاوية وإلغاء تخصيص جميع الموارد الملحقة بتلك النسخة. استخدم poweroff لإصدار طلب إيقاف تشغيل نظيف.

    أُضيف في الإصدارة 206.

kill NAME...
    يرسل إشارة إلى عملية واحدة أو أكثر من عمليات الآلة الافتراضية أو الحاوية. هذا يعني العمليات كما يراها المضيف، وليس العمليات داخل الآلة الافتراضية أو الحاوية. استخدم --kill-whom= لاختيار أي عملية سيتم قتلها. استخدم --signal= لاختيار الإشارة المراد إرسالها.

    أُضيف في الإصدارة 206.

bind NAME PATH [PATH]
    يوصل ملفا أو مجلدا بالربط من المضيف إلى الحاوية المحددة. وسيط المسار الأول هو الملف أو المجلد المصدر على المضيف، ووسيط المسار الثاني هو الملف أو المجلد الوجهة في الحاوية. عند حذف الأخير، يكون مسار الوجهة في الحاوية هو نفس مسار المصدر على المضيف. عند الدمج مع مفتاح --read-only، يُنشأ وصل ربط للقراءة فقط. عند الدمج مع مفتاح --mkdir، يُنشأ مسار الوجهة أولا قبل تطبيق الوصل. لاحظ أن هذا الخيار مدعوم حاليا فقط لحاويات systemd-nspawn(1)، وفقط إذا لم تُستخدم مساحة أسماء المستخدم (--private-users). يدعم هذا الأمر وصل الربط للمجلدات، والملفات العادية، وعقد الأجهزة، وعقد مقابس AF_UNIX، بالإضافة إلى FIFOs.

    أُضيف في الإصدارة 219.

bind-volume اسم مواصفات
    الحصول على وحدة تخزين من مزود storagectl(1) وتوصيلها بالآلة الجارية. SPEC هي سلسلة محارف من الشكل "PROVIDER:VOLUME[:CONFIG][:K=V,...]"، مطابقة في القواعد النحوية لوسيطة --bind-volume= الخاصة بـ systemd-vmspawn(1).

    يُعرف الحجم الموصول بالاسم "PROVIDER:VOLUME" ويمكن فصله في وقت التشغيل عبر unbind-volume. يُدعم حاليًا فقط لآلات systemd-vmspawn التي تعرض مقبس تحكم io.systemd.MachineInstance.

    أُضيف في الإصدار 261.

unbind-volume اسم اسم-التخزين
    فصل وحدة تخزين من الآلة الجارية. STORAGE-NAME هو معرف "PROVIDER:VOLUME" الذي حُدد في وقت bind-volume. لا يمكن فصل الأحجام التي وُصلت عند بدء تشغيل الآلة (مثلًا عبر --bind-volume= على systemd-vmspawn(1)) وستفشل مع io.systemd.MachineInstance.StorageImmutable.

    أُضيف في الإصدار 261.

copy-to NAME PATH [PATH] --force
    ينسخ الملفات أو المجلدات من نظام المضيف إلى حاوية عاملة. يأخذ اسم حاوية، يليه مسار المصدر على المضيف ومسار الوجهة في الحاوية. إذا حُذف مسار الوجهة، فيُستخدم نفس مسار المصدر.

    إذا كان المضيف والحاوية يشتركان في نفس مساحة أسماء المستخدم والمجموعة، فستُحفظ ملكية الملف بواسطة معرف المستخدم ومعرف المجموعة الرقمي للنسخة، وإلا فستكون جميع الملفات والمجلدات في النسخة مملوكة للمستخدم الجذر والمجموعة (UID/GID 0).

    أُضيف في الإصدارة 219.

copy-from NAME PATH [PATH] --force
    ينسخ الملفات أو المجلدات من حاوية إلى نظام المضيف. يأخذ اسم حاوية، يليه مسار المصدر في الحاوية ومسار الوجهة على المضيف. إذا حُذف مسار الوجهة، فيُستخدم نفس مسار المصدر.

    إذا كان المضيف والحاوية يشتركان في نفس مساحة أسماء المستخدم والمجموعة، فستُحفظ ملكية الملف بواسطة معرف المستخدم ومعرف المجموعة الرقمي للنسخة، وإلا فستكون جميع الملفات والمجلدات في النسخة مملوكة للمستخدم الجذر والمجموعة (UID/GID 0).

    أُضيف في الإصدارة 219.

  أوامر الصور

list-images
    يعرض قائمة بصور الحاويات والآلات الافتراضية المثبتة محليا. يعدد هذا جميع صور الأقراص الخام ومجلدات الحاويات والأجزاء الفرعية في /var/lib/machines/ (ومسارات البحث الأخرى، انظر أدناه). استخدم start (انظر أعلاه) لتشغيل حاوية من إحدى الصور المدرجة. لاحظ أنه، مبدئيا، لا تُعرض الحاويات التي يبدأ اسمها بنقطة ("."). لإظهارها أيضًا، حدد --all. لاحظ أن الصورة الخاصة ".host" موجودة دائما ضمنيا وتشير إلى الصورة التي أُقلع منها المضيف نفسه.

    أُضيف في الإصدارة 219.

image-status [NAME...]
    يعرض معلومات حالة مقتضبة حول صورة حاوية أو آلة افتراضية واحدة أو أكثر. هذه الوظيفة مخصصة لإنتاج مخرجات مقروءة للبشر. استخدم show-image (انظر أدناه) لإنتاج مخرجات قابلة للتحليل حاسوبيا بدلا من ذلك.

    أُضيف في الإصدارة 219.

show-image [NAME...]
    يعرض خصائص صورة آلة افتراضية أو حاوية مسجلة واحدة أو أكثر، أو المدير نفسه. إذا لم يُحدد أي وسيط، فستُعرض خصائص المدير. إذا حُدد NAME، فستُعرض خصائص صورة الآلة الافتراضية أو الحاوية هذه. تُكبت الخصائص الفارغة مبدئيا. استخدم --all لإظهارها أيضًا. لاختيار خصائص معينة لعرضها، استخدم --property=. هذا الأمر مخصص للاستخدام عندما تكون المخرجات القابلة للتحليل حاسوبيا مطلوبة. استخدم image-status إذا كنت تبحث عن مخرجات منسقة مقروءة للبشر.

    أُضيف في الإصدارة 219.

edit NAME|FILE
    يحرر ملف الإعدادات للآلات المحددة. لتنسيق ملف الإعدادات، ارجع إلى systemd.nspawn(5). إذا تعذر العثور على ملف إعدادات موجود للآلة المعطاة، فإن edit ينشئ آليا ملف إعدادات جديدا من الصفر تحت /etc/systemd/nspawn/.

    أُضيف في الإصدار 254.

cat NAME|FILE
    يعرض ملف الإعدادات للآلات المحددة.

    أُضيف في الإصدار 254.

clone NAME NAME
    يستنسخ صورة حاوية أو آلة افتراضية. تحدد الوسائط اسم الصورة المراد استنساخها واسم الصورة المستنسخة حديثا. لاحظ أن صور الحاويات ذات المجلدات العادية تُستنسخ إلى صور أجزاء فرعية من btrfs باستخدام هذا الأمر، إذا كان نظام الملفات الأساسي يدعم ذلك. لاحظ أن استنساخ صورة حاوية أو آلة افتراضية مُحسّن لأنظمة الملفات التي تدعم النسخ عند الكتابة، وقد لا يكون فعالا في الأنظمة الأخرى بسبب قيود نظام الملفات.

    لاحظ أن هذا الأمر يترك اسم المضيف، ومعرف الآلة وجميع الإعدادات الأخرى التي يمكن أن تحدد النسخة دون تعديل. وبالتالي ستتشارك الصورة الأصلية والنسخة المستنسخة هذه الاعتمادات، وقد يكون من الضروري تغييرها يدويا في النسخة.

    إذا جُمع مع مفتاح --read-only، تُنشأ صورة مستنسخة للقراءة فقط.

    أُضيف في الإصدارة 219.

rename NAME NAME
    يعيد تسمية صورة حاوية أو آلة افتراضية. تحدد الوسائط اسم الصورة المراد إعادة تسميتها والاسم الجديد للصورة.

    أُضيف في الإصدارة 219.

read-only NAME [BOOL]
    يعلم (أو يلغي تعليم) صورة حاوية أو آلة افتراضية كصورة للقراءة فقط. يأخذ اسم صورة آلة افتراضية أو حاوية، يليه قيمة منطقية كوسائط. إذا حُذفت القيمة المنطقية، فيُفترض أنها إيجابية، أي تُعلم الصورة كصورة للقراءة فقط.

    أُضيف في الإصدارة 219.

remove NAME...
    يزيل صورة حاوية أو آلة افتراضية واحدة أو أكثر. الصورة الخاصة ".host"، التي تشير إلى شجرة مجلدات المضيف نفسه، لا يمكن إزالتها.

    أُضيف في الإصدارة 219.

set-limit [NAME] BYTES
    يضبط الحجم الأقصى بالبايت الذي قد تصل إليه صورة حاوية أو آلة افتراضية معينة، أو جميع الصور، على القرص (حصة القرص). يأخذ إما معامل واحد أو معاملين. المعامل الاختياري الأول يشير إلى اسم صورة حاوية أو آلة افتراضية. إذا حُدد، فيُغير حد الحجم للصورة المحددة. إذا حُذف، فيُغير حد الحجم الإجمالي لمجموع جميع الصور المخزنة محليا. الوسيط الأخير يحدد حد الحجم بالبايت، ومن الممكن أن يُلحق بوحدات K وM وG وT المعتادة. إذا كان يجب تعطيل حد الحجم، فحدد "-" كحجم.

    لاحظ أن حدود الحجم لكل حاوية مدعومة فقط في أنظمة ملفات btrfs.

    أُضيف في الإصدارة 220.

clean
    يزيل صور الآلات الافتراضية أو الحاويات المخفية (أو الجميع). يزيل هذا الأمر جميع صور الآلات المخفية من /var/lib/machines/، أي تلك التي يبدأ اسمها بنقطة. استخدم machinectl list-images --all لرؤية قائمة بجميع صور الآلات، بما في ذلك الصور المخفية.

    عند الدمج مع مفتاح --all يزيل جميع الصور، وليس فقط الصور المخفية. يفرغ هذا الأمر فعليا /var/lib/machines/.

    لاحظ أن أوامر مثل importctl pull-tar أو importctl pull-raw عادة ما تنشئ صور آلات مخفية، للقراءة فقط، وغير معدلة من الصورة المنزلة أولا، قبل استنساخ نسخة عمل قابلة للكتابة منها، من أجل تجنب التنزيلات المكررة في حال إعادة استخدام الصور عدة مرات. استخدم machinectl clean لإزالة الصور القديمة والمخفية التي أُنشئت بهذه الطريقة.

    أُضيف في الإصدارة 230.

الخيارات

الخيارات التالية مفهومة:

-p، --property=
    عند عرض خصائص الآلة أو الصورة، يقيد المخرجات بخصائص معينة كما يحددها الوسيط. إذا لم يُحدد، فستُعرض جميع الخصائص المضبوطة. يجب أن يكون الوسيط اسم خاصية، مثل "Name". إذا حُدد أكثر من مرة، فستُعرض جميع الخصائص بالأسماء المحددة.

    أُضيف في الإصدارة 206.

--value
    عند طباعة الخصائص باستخدام show، يطبع القيمة فقط، ويتخطى اسم الخاصية وعلامة "=".

    أُضيف في الإصدارة 230.

-P
    يكافئ --value --property=، أي يعرض قيمة الخاصية دون اسم الخاصية أو علامة "=". لاحظ أن استخدام -P مرة واحدة سيؤثر أيضًا على جميع الخصائص المدرجة مع -p/--property=.

    أُضيف في الإصدار 256.

-a، --all
    عند عرض خصائص الآلة أو الصورة، يعرض جميع الخصائص بغض النظر عما إذا كانت مضبوطة أم لا.

    عند سرد صور الآلات الافتراضية أو الحاويات، لا يكبت الصور التي تبدأ بحرف نقطة (".").

    عند تنظيف صور الآلات الافتراضية أو الحاويات، يزيل جميع الصور، وليس فقط الصور المخفية.

    أُضيف في الإصدارة 206.

-l، --full
    لا يضع نقاط حذف لمدخلات شجرة العمليات أو الجدول. هذا يتضمن --max-addresses=full.

    أُضيف في الإصدارة 206.

--kill-whom=
    عند الاستخدام مع kill، يختار العمليات المراد قتلها. يجب أن تكون واحدة من leader، أو supervisor، أو all لاختيار ما إذا كان سيُقتل فقط عملية القائد للآلة، أو عملية المشرف للآلة، أو جميع عمليات الآلة. إذا حُذف، فإنه يفترض مبدئيا all.

    أُضيف في الإصدارة 206.

-s، --signal=
    عند الاستخدام مع kill، اختر الإشارة المراد إرسالها إلى العمليات المختارة. يجب أن تكون واحدة من محددات الإشارات المعروفة مثل SIGTERM أو SIGINT أو SIGSTOP. إذا حُذفت، فإنها تؤول مبدئيًا إلى SIGTERM.

    القيمة الخاصة "help" ستسرد القيم المعروفة وسيخرج البرنامج فورًا، والقيمة الخاصة "list" ستسرد القيم المعروفة مع أرقام الإشارات العددية وسيخرج البرنامج فورًا.

--uid=
    عند الاستخدام مع أمر shell، يختار معرف المستخدم لفتح جلسة الصدفة التفاعلية باسمه. إذا كان وسيط أمر shell يحدد أيضًا اسم مستخدم، فيُتجاهل هذا الخيار. إذا لم يُحدد الاسم بأي من الطريقتين، فسيُستخدم "root" مبدئيا. لاحظ أن هذا المفتاح غير مدعوم لأمر login (انظر أدناه).

    أُضيف في الإصدارة 225.

-E الاسم[=القيمة]، --setenv=الاسم[=القيمة]
    عند الاستخدام مع أمر shell، يضبط متغير بيئة للصدفة المنفذة. يمكن استخدام هذا الخيار أكثر من مرة لضبط متغيرات متعددة. عند حذف "=" و VALUE، ستُستخدم قيمة المتغير بنفس الاسم في بيئة البرنامج.

    لاحظ أن هذا الخيار غير مدعوم لأمر login.

    أُضيف في الإصدارة 230.

--mkdir
    عند الاستخدام مع bind، يُنشأ ملف أو مجلد الوجهة قبل تطبيق وصل الارتباط (bind mount). لاحظ أنه على الرغم من أن اسم هذا الخيار يوحي بأنه مناسب للمجلدات فقط، إلا أن هذا الخيار ينشئ أيضًا عقدة ملف الوجهة للوصل فوقها إذا كان الكائن المراد وصله ليس مجلدًا، بل ملفًا عاديًا، أو عقدة جهاز، أو مقبس أو FIFO.

    أُضيف في الإصدارة 219.

--read-only
    عند استخدامه مع bind، فإنه ينشئ نقطة وصل (bind mount) للقراءة فقط.

    عند الاستخدام مع clone تُنشأ صورة حاوية أو آلة افتراضية للقراءة فقط.

    أُضيف في الإصدارة 219.

-n، --lines=
    عند الاستخدام مع status، يتحكم في عدد أسطر اليومية المراد عرضها، بدءًا من الأحدث. يأخذ وسيط عدد صحيح موجب. يؤول مبدئيًا إلى 10.

    أُضيف في الإصدارة 219.

-o، --output=
    عند الاستخدام مع status، يتحكم في تنسيق مدخلات اليومية المعروضة. للخيارات المتاحة، انظر journalctl(1). يؤول مبدئيًا إلى "short".

    أُضيف في الإصدارة 219.

--runner=nspawn|vmspawn
    عند العمل على الآلات، يختار ما إذا كان سيُستخدم systemd-nspawn(1) أو systemd-vmspawn(1). يُستخدم systemd-nspawn(1) مبدئيا.

    أُضيف في الإصدار 256.

-V
    -V هو اختصار لـ --runner=vmspawn.

    أُضيف في الإصدار 256.

--now
    عند الاستخدام مع enable أو disable، ستُشغل الحاويات أيضًا أو يُوقف تشغيلها. لا تُنفذ عملية التشغيل أو إيقاف التشغيل إلا عندما تنجح عملية التفعيل أو التعطيل المقابلة.

    أُضيف في الإصدار 253.

--force
    يستبدل الملف الهدف عند نسخ الملفات.

    أُضيف في الإصدارة 219.

--max-addresses=
    عند الاستخدام مع أمر list-machines، يقيد عدد عناوين IP المعروضة لكل آلة. القيمة المبدئية هي 1. يمكن طلب جميع العناوين باستخدام "all". إذا كان الحد هو 0، فلن يُعرض عمود العنوان. خلاف ذلك، إذا كان للآلة عناوين أكثر مما هو معروض، فستتبع "..." العنوان الأخير.

    أُضيف في الإصدار 232.

-q، --quiet
    يكتم مخرجات المعلومات الإضافية أثناء التشغيل.

    أُضيف في الإصدارة 236.

-H، --host=
    نفّذ العملية عن بُعد. حدد اسم مضيف، أو اسم مستخدم واسم مضيف يفصل بينهما "@" للاتصال به. يمكن اختيارياً إلحاق اسم المضيف بمنفذ يستمع إليه ssh، مفصولاً بـ ":"، ثم اسم حاوية، مفصولاً بـ "/"، مما يوصل مباشرة بحاوية معينة على المضيف المحدد. سيستخدم هذا SSH للتحدث إلى نسخة مدير الحاسوب البعيد. يمكن سرد أسماء الحاويات باستخدام machinectl -H المضيف. ضع عناوين IPv6بين قوسين.

-M، --machine=
    يتصل بـ systemd-machined.service(8) الذي يعمل في حاوية محلية، لتنفيذ العملية المحددة داخل الحاوية.

    أُضيف في الإصدارة 235.

--no-pager
    لا تمرر المخرجات إلى برنامج عرض (pager).

--no-legend
    لا تطبع مفتاح الرموز، أي ترويسات الأعمدة والتذييل المزود بالتلميحات.

--no-ask-password
    لا تسأل المستخدم عن الاستيثاق للعمليات ذات الامتيازات.

-h، --help
    اطبع نص مساعدة قصير واخرج.

--version
    اطبع سلسلة إصدار قصيرة واخرج.

أسماء الآلات والصور

تعمل أداة machinectl على الآلات والصور التي يجب اختيار أسمائها باتباع قواعد صارمة. يجب أن تكون أسماء الآلات مناسبة للاستخدام كأسماء مضيفين باتباع مجموعة فرعية متحفظة من دلالات DNS و UNIX/Linux. تحديدا، يجب أن تتكون من سلسلة واحدة أو أكثر من سلاسل اللصائق غير الفارغة، مفصولة بنقاط. لا يُسمح بنقاط في البداية أو النهاية. لا يُسمح بتسلسلات من نقاط متعددة. قد تتكون سلاسل اللصائق فقط من أحرف وأرقام بالإضافة إلى الاندفاعة. الحد الأقصى لطول اسم الآلة هو 64 حرفا.

تشير آلة خاصة باسم ".host" إلى نظام المضيف العامل نفسه. هذا مفيد لتنفيذ العمليات أو فحص نظام المضيف أيضًا. لاحظ أن machinectl list لن يعرض هذه الآلة الخاصة إلا إذا حُدد مفتاح --all.

المتطلبات المتعلقة بأسماء الصور أقل صرامة، ومع ذلك، يجب أن تكون بترميز UTF-8 صحيح، ويجب أن تكون مناسبة كأسماء ملفات (وبالتالي لا تكون النقطة المفردة أو المزدوجة، ولا تتضمن شرطة مائلة)، ولا يجوز أن تحتوي على أحرف تحكم. بما أن العديد من العمليات تبحث عن صورة باسم الآلة المطلوبة، فمن المستحسن تسمية الصور بنفس الطريقة الصارمة للآلات.

تشير صورة خاصة باسم ".host" إلى صورة نظام المضيف العامل. وبالتالي فهي ترتبط مفاهيميا باسم الآلة الخاص ".host" الموصوف أعلاه. لاحظ أن machinectl list-images لن يعرض هذه الصورة الخاصة أيضًا، ما لم يُحدد --all.

الملفات والأدلة

يُفضل تخزين صور الآلات في /var/lib/machines/، ولكن يُبحث عنها أيضًا في /usr/local/lib/machines/ و /usr/lib/machines/. لأسباب تتعلق بالتوافق، يُبحث في المجلد /var/lib/container/ أيضًا. لاحظ أن الصور المخزنة تحت /usr/ تُعتبر دائما للقراءة فقط. من الممكن إنشاء وصلة رمزية لصور الآلات من مجلدات أخرى إلى /var/lib/machines/ لجعلها متاحة للتحكم باستخدام machinectl.

لاحظ أن بعض عمليات الصور مدعومة أو فعالة أو ذرية فقط في أنظمة ملفات btrfs.

يفهم systemd-nspawn(1) و machinectl صور الأقراص في ثلاثة تنسيقات:

    • شجرة مجلدات بسيطة، تحتوي على ملفات ومجلدات الحاوية المراد إقلاعها.

    • أجزاء فرعية (على أنظمة ملفات btrfs)، وهي شبيهة بالمجلدات البسيطة الموصوفة أعلاه. ومع ذلك، لها فوائد إضافية، مثل الاستنساخ الفعال وإبلاغ الحصص.

    • صور قرص "خام"، أي صور ثنائية للأقراص مع جدول أقسام GPT أو MBR. الصور من هذا النوع هي ملفات عادية باللاحقة ".raw".

انظر systemd-nspawn(1) لمزيد من المعلومات حول تنسيقات الصور، وعلى وجه الخصوص خياريه --directory= و --image=.

أمثلة

Example 1. Download an Ubuntu RAW image, set a root password in it, start it as a service

    # importctl pull-raw -mN \
          https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img \
          jammy
    # systemd-firstboot --image=/var/lib/machines/jammy.raw --prompt-root-password --force
    # machinectl start jammy
    # machinectl login jammy

ينزل هذا صورة .raw المحددة ويجعلها متاحة تحت الاسم المحلي "jammy". ثم، تُضبط كلمة سر الجذر باستخدام systemd-firstboot(1). وبعد ذلك تُشغل الآلة كخدمة نظام. وباستخدام الأمر الأخير يُطلب حث دخول إلى الحاوية.

حالة الخروج

عند النجاح، يُعاد الرقم 0، وإلا فيُعاد رمز فشل غير صفري.

البيئة

$SYSTEMD_LOG_LEVEL
    الحد الأقصى لمستوى السجل للرسائل الصادرة (تُكتم الرسائل ذات مستوى السجل الأعلى، أي الأقل أهمية). يأخذ قائمة قيم مفصولة بفواصل. يمكن أن تكون القيمة إما واحدة من (بترتيب تنازلي للأهمية) emerg، أو alert، أو crit، أو err، أو warning، أو notice، أو info، أو debug، أو رقمًا صحيحًا في النطاق من 0 إلى 7. راجع syslog(3) لمزيد من المعلومات. يمكن اختياريًا سبق كل قيمة بأحد الخيارات console، أو syslog، أو kmsg أو journal متبوعة بنقطتين لضبط الحد الأقصى لمستوى السجل لهذا الهدف المحدد (مثلاً: SYSTEMD_LOG_LEVEL=debug,console:info يحدد التسجيل بمستوى debug باستثناء التسجيل في الطرفية الذي يجب أن يكون بمستوى info). لاحظ أن الحد الأقصى العالمي لمستوى السجل له الأولوية على أي حدود مستويات سجل لكل هدف على حدة.

$SYSTEMD_LOG_COLOR
    قيمة منطقية. إذا كانت صحيحة، فستُلون الرسائل المكتوبة في الـ tty حسب الأولوية.

    هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستلون الرسائل بناءً على مستوى السجل من تلقاء نفسها.

$SYSTEMD_LOG_TIME
    قيمة منطقية. إذا كانت صحيحة، فستُسبق رسائل سجل الطرفية بختم زمني.

    هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية أو إلى ملف، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستُرفق طوابع زمنية بناءً على البيانات الوصفية للمدخلات من تلقاء نفسها.

$SYSTEMD_LOG_LOCATION
    قيمة منطقية. إذا كانت صحيحة، فستُسبق الرسائل باسم الملف ورقم السطر في الشيفرة المصدرية حيث نشأت الرسالة.

    لاحظ أن موقع السجل غالبًا ما يُرفق كبيانات وصفية بمدخلات اليوميات على أي حال. ومع ذلك، قد يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تنقيح البرامج.

$SYSTEMD_LOG_TID
    قيمة منطقية. إذا كانت صحيحة، فستُسبق الرسائل بمعرّف الخيط الرقمي الحالي (TID).

    لاحظ أن هذه المعلومات تُرفق كبيانات وصفية بمدخلات اليوميات على أي حال. ومع ذلك، قد يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تنقيح البرامج.

$SYSTEMD_LOG_TARGET
    وجهة رسائل السجل. أحد الخيارات: console (التسجيل في الطرفية المرفقة)، أو console-prefixed (التسجيل في الطرفية المرفقة ولكن مع بادئات ترميز مستوى السجل و"المرفق"، راجع syslog(3)، أو kmsg (التسجيل في ذاكرة السجل الدائرية للنواة)، أو journal (التسجيل في اليوميات)، أو journal-or-kmsg (التسجيل في اليوميات إذا كانت متاحة، وفي kmsg بخلاف ذلك)، أو auto (تحديد هدف السجل المناسب آليًا، وهو المبدئي)، أو null (تعطيل مخرج السجل).

$SYSTEMD_LOG_RATELIMIT_KMSG
    فيما إذا كان سيُحد معدل kmsg أم لا. يأخذ قيمة منطقية. القيمة المبدئية هي "true". إذا عُطّل، فلن يحد systemd من معدل الرسائل المكتوبة في kmsg.

$SYSTEMD_PAGER، $PAGER
    مستعرض الصفحات المراد استخدامه عندما لا يُعطى الخيار --no-pager. يُستخدم $SYSTEMD_PAGER إذا كان مضبوطًا؛ وإلا فيُستخدم $PAGER. إذا لم يُضبط أي من $SYSTEMD_PAGER أو $PAGER، فتُجرب مجموعة من التطبيقات المعروفة لمستعرضات الصفحات تباعًا، بما في ذلك less(1) و more(1)، حتى يُعثر على أحدها. إذا لم يُكتشف أي تطبيق لمستعرض الصفحات، فلا يُستدعى أي مستعرض. ضبط متغيرات البيئة هذه على سلسلة فارغة أو القيمة "cat" يعادل تمرير الخيار --no-pager.

    ملاحظة: إذا لم يُضبط $SYSTEMD_PAGERSECURE، فلا يمكن استخدام $SYSTEMD_PAGER و $PAGER إلا لتعطيل مستعرض الصفحات (باستخدام "cat" أو "")، ويُتجاهل فيما عدا ذلك.

$SYSTEMD_LESS
    تجاوز الخيارات الممررة إلى less (مبدئيًا "FRSXMK").

    قد يرغب المستخدمون في تغيير خيارين على وجه الخصوص:

    K
        يوجه هذا الخيار مستعرض الصفحات بالخروج فورًا عند الضغط على Ctrl+C. للسماح لـ less بالتعامل مع Ctrl+C بنفسه للعودة إلى محث أوامر المستعرض، قم بإلغاء ضبط هذا الخيار.

        إذا لم تتضمن قيمة $SYSTEMD_LESS الحرف "K"، وكان المستعرض المستدعى هو less، فسيُتجاهل Ctrl+C من قبل الملف التنفيذي، ويجب معالجته من قبل المستعرض.

    X
        يوجه هذا الخيار مستعرض الصفحات بعدم إرسال سلاسل تهيئة وإنهاء termcap إلى الطرفية. يُضبط مبدئيًا للسماح لمخرجات الأوامر بالبقاء مرئية في الطرفية حتى بعد خروج المستعرض. ومع ذلك، فإن هذا يمنع بعض وظائف المستعرض من العمل، لا سيما أن المخرجات المفصولة بصفحات لا يمكن تمريرها باستخدام الفأرة.

    لاحظ أن ضبط متغير البيئة العادي $LESS ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.

    راجع less(1) لمزيد من النقاش.

$SYSTEMD_LESSCHARSET
    يتجاوز طقم المحارف الممرر إلى less (مبدئيًا "utf-8"، إذا حُدّد أن الطرفية المستدعية متوافقة مع UTF-8).

    لاحظ أن ضبط متغير البيئة العادي $LESSCHARSET ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.

$SYSTEMD_PAGERSECURE
    تدعم أوامر المستعرض (pager) الشائعة مثل less(1)، بالإضافة إلى "التصفح"، أي التمرير عبر المخرجات، فتح ملفات أخرى أو الكتابة إليها وتشغيل أوامر صدفة عشوائية. عند استدعاء الأوامر بامتيازات مرفوعة، على سبيل المثال تحت sudo(8) أو pkexec(1)، يصبح المستعرض حدًا أمنيًا. يجب الحرص على استخدام البرامج ذات الوظائف المحدودة للغاية فقط كمستعرضات، وعدم السماح بالميزات التفاعلية غير المقصودة مثل فتح ملفات جديدة أو إنشائها أو بدء عمليات فرعية. يمكن تمكين "الوضع الآمن" للمستعرض كما هو موضح أدناه، إذا كان المستعرض يدعم ذلك (معظم المستعرضات لم تُكتب بطريقة تأخذ هذا في الاعتبار). يوصى إما بتمكين "الوضع الآمن" صراحةً أو تعطيل المستعرض تمامًا باستخدام --no-pager أو PAGER=cat عند السماح للمستخدمين غير الموثوق بهم بتنفيذ أوامر بامتيازات مرفوعة.

    يأخذ هذا الخيار وسيطًا منطقيًا. عند ضبطه على صحيح (true)، يُمكن "الوضع الآمن" لمستعرض الصفحات. في "الوضع الآمن"، سيُضبط LESSSECURE=1 عند استدعاء المستعرض، مما يوجه المستعرض لتعطيل الأوامر التي تفتح أو تنشئ ملفات جديدة أو تبدأ عمليات فرعية جديدة. حاليًا، يُعرف فقط less(1) بقدرته على فهم هذا المتغير وتطبيق "الوضع الآمن".

    عند الضبط إلى false، لا توضع قيود على أداة التصفح (pager). إن ضبط SYSTEMD_PAGERSECURE=0 أو عدم إزالته من البيئة الموروثة قد يسمح للمستخدم باستدعاء أوامر اعتباطية.

    عندما لا يُضبط $SYSTEMD_PAGERSECURE، تحاول أدوات systemd استنتاج ما إذا كان ينبغي تمكين "الوضع الآمن" آليًا وما إذا كان المستعرض يدعمه. يُمكن "الوضع الآمن" إذا كان معرف المستخدم الفعلي (UID) ليس هو نفسه مالك جلسة الولوج، انظر geteuid(2) و sd_pid_get_owner_uid(3)، أو عند التشغيل تحت sudo(8) أو أدوات مماثلة ($SUDO_UID مضبوط [1]). في تلك الحالات، سيُضبط SYSTEMD_PAGERSECURE=1 ولن تُستخدم المستعرضات التي لا يُعرف عنها تطبيق "الوضع الآمن" على الإطلاق. لاحظ أن هذا الاستكشاف الآلي يغطي فقط الآليات الأكثر شيوعًا لرفع الامتيازات وهو مخصص للتسهيل. يوصى بضبط $SYSTEMD_PAGERSECURE صراحةً أو تعطيل المستعرض.

    لاحظ أنه إذا أُريد احترام المتغيرات $SYSTEMD_PAGER أو $PAGER، لغير غرض تعطيل مستعرض الصفحات، فيجب ضبط $SYSTEMD_PAGERSECURE أيضًا.

$SYSTEMD_COLORS
    يأخذ وسيطًا منطقيًا (boolean)، أو قيمة خاصة. مبدئيًا (عند عدم الضبط)، سيستخدم systemd والأدوات المرتبطة به الألوان في مخرجاتها إذا أمكن ذلك. إذا ضُبط $COLORTERM على "truecolor" أو "24bit"، فستُمكّن ألوان 24 بت، وإلا فستُستخدم 256 لونًا، ما لم يشر $NO_COLOR أو $TERM إلى تعطيل الألوان.

    true
        نفس حالة عدم الضبط، باستثناء تجاهل $NO_COLOR.

    false
        سيكون المخرج أحادي اللون.

    "16"، "256"، "24bit"
        استخدم دائمًا ألوان ANSI الـ 16 الأساسية، أو 256 لونًا، أو لون 24 بت، على التوالي.

    "auto-16"، "auto-256"، "auto-24bit"
        استخدم كمية الألوان المعطاة، بشرط $TERM، وما هو متصل بالطرفية.

$SYSTEMD_URLIFY
    يجب أن تكون القيمة منطقية. تتحكم فيما إذا كان يجب توليد روابط قابلة للنقر في المخرج لمحاكيات الطرفية التي تدعم ذلك. يمكن تحديد هذا لتجاوز القرار الذي يتخذه systemd بناءً على $TERM وشروط أخرى.

انظر أيضًا

systemd(1)، systemd-machined.service(8)، systemd-nspawn(1)، systemd.special(7)، importctl(1)، tar(1)، xz(1)، gzip(1)، bzip2(1)، zstd(1)

ملاحظات

1.  يوصى للأدوات الأخرى بضبط والتحقق من $SUDO_UID حسب الاقتضاء، ومعاملته كواجهة مشتركة.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.