Scroll to navigation

VARLINKCTL(1) varlinkctl VARLINKCTL(1)

الاسم

varlinkctl - استكشف واستدعِ خدمات Varlink

موجز

varlinkctl [خيارات...] معلومات العنوان

varlinkctl [خيارات...] قائمة-الواجهات العنوان

varlinkctl [خيارات...] قائمة-الطرق العنوان [الواجهة...]

varlinkctl [خيارات...] استكشف العنوان [الواجهة...]

varlinkctl [خيارات...] استدعِ العنوان الطريقة [الوسائط]

varlinkctl [خيارات...] تحقق-من-idl [الملف]

الوصف

يمكن استخدام varlinkctl لاستكشاف واستدعاء خدمات Varlink[1].

يتم الإشارة إلى الخدمات بواحد مما يلي:

•مرجع خدمة Varlink يبدأ بالسلسلة "unix:"، متبوعًا بمسار مأخذ AF_UNIX مطلق، أو بـ "@" وسلسلة عشوائية (الأخير للإشارة إلى مآخذ في النطاق المجرد). في هذه الحالة، يتم إنشاء اتصال مأخذ تدفق بالمأخذ المحدد.

•مرجع خدمة Varlink يبدأ بالسلسلة "exec:"، متبوعًا بمسار مطلق لملف ثنائي للتنفيذ. في هذه الحالة، يتم تفريع العملية المحددة محليًا، مع تمرير مأخذ تدفق متصل.

•مرجع خدمة Varlink يبدأ بالسلسلة "ssh-unix:"، متبوعًا بمواصفات مضيف SSH، متبوعًا بـ ":"، متبوعًا بمسار مقبس AF_UNIX مطلق. (يتطلب هذا OpenSSH 9.4 أو أحدث على جانب الخادم، مقابس مساحة الاسم المجردة غير مدعومة.)

•مرجع خدمة Varlink يبدأ بالسلسلة "ssh-exec:"، متبوعًا بمواصفات مضيف SSH، ثم ":"، ثم سطر أوامر. في هذه الحالة، يتم استدعاء الأمر ويتم التحدث ببروتوكول Varlink على الإدخال والإخراج القياسيين للأمر المستدعى.

للتسهيل، يتم دعم هاتين الصيغتين الأبسط (المكررة) لعنوان الخدمة أيضًا:

•مسار نظام ملفات إلى مأخذ AF_UNIX، إما مطلق (أي يبدأ بـ "/") أو نسبي (وفي هذه الحالة يجب أن يبدأ بـ "./").

•مسار نظام ملفات إلى ملف تنفيذي، إما مطلق أو نسبي (كما هو مذكور أعلاه، يجب أن يبدأ بـ "/"، أو "./").

الأوامر

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

info العنوان

يعرض معلومات موجزة عن الخدمة المحددة، بما في ذلك اسم البائع وقائمة الواجهات المنفذة. يتوقع عنوان خدمة بأحد التنسيقات الموصوفة أعلاه.

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

list-interfaces العنوان

يعرض قائمة الواجهات المنفذة بواسطة الخدمة المحددة. يتوقع عنوان خدمة بأحد التنسيقات الموصوفة أعلاه.

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

list-methods ADDRESS [INTERFACE...]

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

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

introspect ADDRESS [INTERFACE...]

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

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

call ADDRESS METHOD [ARGUMENTS]

يستدعي الأسلوب المحدد للخدمة المحددة. يتوقع عنوان خدمة بالتنسيق الموصوف أعلاه، واسم أسلوب Varlink مؤهل بالكامل، وكائن وسائط JSON. إذا لم يُحدد كائن الوسائط، يُقرأ من STDIN بدلاً من ذلك. لتمرير قائمة فارغة من المعاملات، حدد الكائن الفارغ "{}".

تُكتب معاملات الرد ككائن JSON إلى STDOUT.

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

validate-idl [FILE]

يقرأ ملف تعريف واجهة Varlink، ويحلله ويتحقق من صحته، ثم يخرجه مع إبراز بناء الجملة. يتحقق هذا من بناء الجملة والاتساق الداخلي للواجهة. يتوقع اسم ملف لقراءة تعريف الواجهة منه. إذا تم حذفه، يقرأ تعريف الواجهة من STDIN.

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

help

أظهر مساعدة بناء جملة الأمر.

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

الخيارات

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

--more

عند استخدامه مع call: توقع ردود أسلوب متعددة. إذا ضُبطت هذه العلامة، يُرسل استدعاء الأسلوب مع ضبط علامة more، التي تخبر الخدمة بتوليد ردود متعددة، إذا لزم الأمر. يظل الأمر قيد التشغيل حتى ترسل الخدمة رسالة رد تشير إلى أنها الأخيرة في السلسلة (أو إذا تم الوصول إلى المهلة المكونة، انظر أدناه). يجب ضبط هذه العلامة فقط لاستدعاءات الأساليب التي تدعم هذه الآلية.

إذا فعّل هذا الوضع، يُحوّل الإخراج آليًا إلى وضع JSON-SEQ، بحيث يمكن تمييز كائنات الرد الفردية بسهولة.

لا يؤثر هذا المفتاح على مهلة استدعاء الأسلوب المطبقة مبدئيًا: بغض النظر عما إذا كان --more محددًا أم لا، ستكون المهلة المبدئية 45 ثانية. استخدم --timeout= (انظر أدناه) لتغيير المهلة أو تعطيلها. عند استدعاء استدعاء أسلوب يعيد التحديثات باستمرار، يكون من المرغوب عادةً تعطيل المهلة باستخدام --timeout=infinity. من ناحية أخرى، عند استدعاء استدعاء أسلوب --more لغرض تعداد الكائنات (والذي من المحتمل أن يكتمل بسرعة)، يكون من المفيد عادةً ترك منطق المهلة مفعلاً، لأسباب تتعلق بالمتانة.

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

-E

اختصار لـ --more --timeout=infinity. هذا المفتاح مفيد لاستدعاءات الطريقة التي تنفذ الاشتراك في تدفق مستمر من التحديثات.

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

--collect

هذا مشابه لـ --more لكنه يجمع جميع الردود في مصفوفة JSON، ويطبعها، بدلاً من وضع JSON_SEQ.

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

--oneway

عند استخدامه مع call: لا تتوقع رد أسلوب. إذا ضُبطت هذه العلامة، يُرسل استدعاء الأسلوب مع ضبط علامة oneway (يخرج الأمر فورًا بعد ذلك)، مما يخبر الخدمة بعدم توليد رد.

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

--json=وضع

يختار تنسيق إخراج JSON، أحد "pretty" (لإخراج ملون وذو مسافة بادئة جيدة) أو "short" (لإخراج موجز بأقل مسافات بيضاء وبدون أسطر جديدة)، المبدئي هو "short".

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

-j

مكافئ لـ --json=pretty عند استدعائه تفاعليًا من طرفية. وإلا فهو مكافئ لـ --json=short، خاصةً عندما يُوجّه الإخراج إلى برنامج آخر.

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

--quiet،‏ -q

قم بكتم إخراج ردود استدعاء الطريقة.

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

--graceful=

يأخذ اسم خطأ Varlink مؤهل (أي اسم واجهة، ملحق باسم خطأ، مفصول بنقطة؛ على سبيل المثال "org.varlink.service.InvalidParameter"). يضمن أنه إذا فشل استدعاء أسلوب بالخطأ المحدد، فسيُعالج هذا كنجاح، أي سيتسبب في خروج استدعاء varlinkctl بحالة خروج صفرية. يمكن استخدام هذا الخيار أكثر من مرة لمعالجة أخطاء متعددة مختلفة كنجاحات.

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

--timeout=

يتوقع مهلة بالثواني كمعامل. مبدئيًا، تُفرض مهلة 45 ثانية. لإيقاف تشغيل المهلة، حدد "infinity" أو سلسلة فارغة.

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

--no-pager

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

-h، --help

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

--version

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

أمثلة

مثال 1. التحقيق في خدمة

تفحص الأوامر الثلاثة التالية خدمة "io.systemd.Resolve" المنفذة بواسطة systemd-resolved.service(8)، وتسرد معلومات الخدمة العامة والواجهات المنفذة، ثم تعرض تعريف الواجهة للواجهة الرئيسية الخاصة بها:

$ varlinkctl info /run/systemd/resolve/io.systemd.Resolve

Vendor: The systemd Project
Product: systemd (systemd-resolved)
Version: 254 (254-1522-g4790521^)
URL: https://systemd.io/ Interfaces: io.systemd
io.systemd.Resolve
org.varlink.service $ varlinkctl list-interfaces /run/systemd/resolve/io.systemd.Resolve io.systemd io.systemd.Resolve org.varlink.service $ varlinkctl introspect /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve interface io.systemd.Resolve type ResolvedAddress(
ifindex: ?int,
...

(تم اقتطاع تعريف الواجهة في المثال أعلاه، من أجل الإيجاز.)

مثال 2. استدعاء طريقة

الأمر التالي يحل اسم مضيف عبر استدعاء الأسلوب ResolveHostname الخاص بـ systemd-resolved.service(8).

$ varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveHostname '{"name":"systemd.io","family":2}' -j
{

"addresses" : [
{
"ifindex" : 2,
"family" : 2,
"address" : [
185,
199,
111,
153
]
}
],
"name" : "systemd.io",
"flags" : 1048577 }

مثال 3. التحقيق في ملف تنفيذي لخدمة

الأمر التالي يفحص الملف التنفيذي /usr/lib/systemd/systemd-pcrextend وواجهات برمجة التطبيقات IPC التي يوفرها. ثم يستدعي أسلوبًا عليه:

# varlinkctl info /usr/lib/systemd/systemd-pcrextend

Vendor: The systemd Project
Product: systemd (systemd-pcrextend)
Version: 254 (254-1536-g97734fb)
URL: https://systemd.io/ Interfaces: io.systemd
io.systemd.PCRExtend
org.varlink.service # varlinkctl introspect /usr/lib/systemd/systemd-pcrextend io.systemd.PCRExtend interface io.systemd.PCRExtend method Extend(
pcr: int,
text: ?string,
data: ?string ) -> () # varlinkctl call /usr/lib/systemd/systemd-pcrextend io.systemd.PCRExtend.Extend '{"pcr":15,"text":"foobar"}' {}

مثال 4. استدعاء أسلوب عن بُعد عبر SSH

الأمر التالي يحصل على تقرير حول هوية مضيف بعيد "somehost" من systemd-hostnamed.service(8) عبر الاتصال عبر SSH بمقبس AF_UNIX الذي تستمع عليه الخدمة:

# varlinkctl call ssh-unix:somehost:/run/systemd/io.systemd.Hostname io.systemd.Hostname.Describe '{}'

لاستدعاء ملف ثنائي لخدمة Varlink مباشرة على المضيف البعيد، بدلاً من التحدث إلى خدمة عبر AF_UNIX، يمكن القيام بذلك كالتالي:

# varlinkctl call ssh-exec:somehost:/usr/bin/systemd-creds org.varlink.service.GetInfo '{}'

انظر أيضًا

busctl(1), Varlink[1]

ملاحظات

1.
Varlink

ترجمة

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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

systemd 257.13