table of contents
- trixie-backports 4.31.0-1~bpo13+1
- testing 4.31.0-1
- unstable 4.31.0-1
| VARLINKCTL(1) | varlinkctl | VARLINKCTL(1) |
الاسم¶
varlinkctl - استكشف واستدعِ خدمات Varlink
موجز¶
varlinkctl [خيارات...] معلومات العنوان
varlinkctl [خيارات...] قائمة-الواجهات العنوان
varlinkctl [خيارات...] قائمة-الطرق العنوان [الواجهة...]
varlinkctl [خيارات...] استكشف العنوان [الواجهة...]
varlinkctl [خيارات...] استدعِ العنوان الطريقة [الوسائط]
varlinkctl [خيارات...] --exec call عنوان طريقة معطيات -- CMDLINE
varlinkctl [خيارات...] serve دالة {سطر_أوامر...}
varlinkctl [خيارات...] تحقق-من-idl [الملف]
الوصف¶
يمكن استخدام varlinkctl لاستكشاف واستدعاء خدمات Varlink[1].
يتم الإشارة إلى الخدمات بواحد مما يلي:
للتسهيل، يتم دعم هاتين الصيغتين الأبسط (المكررة) لعنوان الخدمة أيضًا:
الأوامر¶
الأوامر التالية مفهومة:
info العنوان
أُضيف في الإصدار 255.
list-interfaces العنوان
أُضيف في الإصدار 255.
list-methods ADDRESS [INTERFACE...]
أُضيف في الإصدار 257.
introspect ADDRESS [INTERFACE...]
أُضيف في الإصدار 255.
call ADDRESS METHOD [ARGUMENTS]
تتم كتابة معاملات الرد ككائنات JSON إلى STDOUT.
أُضيف في الإصدار 255.
serve طريقة سطر_أوامر...
يجب تمرير مقبس الاستماع عبر تفعيل المقبس (أي بروتوكول $LISTEN_FDS)، مما يجعل هذا الأمر مناسبًا للاستخدام في وحدات الخدمة المُفعّلة بالمقبس. عندما يستدعي عميل الطريقة المحددة مع علامة الترقية، يرسل الخادم ردًا يؤكد الترقية، ثم يتفرع وينفذ سطر الأمر المُعطى مع الاتصال المُرقّى على إدخاله وإخراجه القياسيين.
يحول هذا فعليًا أي أمر يتحدث بروتوكولًا عبر الإدخال/الإخراج القياسيين إلى خدمة Varlink، يمكن اكتشافها عبر سجل الخدمة والمصادقة عليها عبر بيانات اعتماد المقبس. نظرًا لأن كل اتصال يُعالج بواسطة عملية فرعية متفرعة، يمكن لوحدة الخدمة تطبيق خيارات العزل الخاصة بـ systemd (مثل ProtectSystem=، إلخ.) ولا تعمل في بيئة المستدعي.
أُضيف في الإصدار 261.
list-registry
أُضيف في الإصدار 260.
validate-idl [FILE]
أُضيف في الإصدار 255.
help
أُضيف في الإصدار 255.
الخيارات¶
الخيارات التالية مفهومة:
--more
إذا تم تمكين هذا الوضع، يتم تحويل الإخراج آلياً إلى وضع JSON-SEQ، بحيث يمكن تمييز كائنات الرد الفردية بسهولة.
ليس لهذا المفتاح أي تأثير على مهلة استدعاء الطريقة المطبقة مبدئياً. بغض النظر عما إذا تم تحديد --more أم لا، ستكون المهلة المبدئية 45 ثانية. استخدم --timeout= (انظر أدناه) لتغيير أو تعطيل المهلة. عند استدعاء استدعاء طريقة يعيد التحديثات باستمرار، من المرغوب عادةً تعطيل المهلة باستخدام --timeout=infinity. من ناحية أخرى، عند استدعاء استدعاء طريقة --more لغرض تعداد الكائنات (والذي من المحتمل أن يكتمل بسرعة)، من المفيد عادةً ترك منطق المهلة ممكناً، لأسباب تتعلق بالمتانة.
أُضيف في الإصدار 255.
-E
أُضيف في الإصدار 257.
--collect
أُضيف في الإصدار 256.
--oneway
أُضيف في الإصدار 255.
--upgrade
إذا لم يُحدد --exec، يعمل varlinkctl كوسيط ثنائي الاتجاه: تُمرر البيانات المقروءة من الإدخال القياسي إلى الاتصال المُرقّى، وتُكتب البيانات المستلمة من الاتصال إلى الإخراج القياسي.
إذا حُدد --exec، يُوضع مقبس الاتصال المُرقّى على كل من الإدخال القياسي والإخراج القياسي للعملية المستدعاة. هذا مشابه لسلوك --exec العادي (بدون --upgrade)، الذي يضع رد استدعاء الطريقة على الإدخال القياسي. يمكن للعملية المستدعاة ببساطة القراءة من stdin والكتابة إلى stdout للتواصل عبر البروتوكول المُرقّى.
لا يجوز دمج هذا الخيار مع --more أو --oneway أو --collect أو --graceful= أو --push-fd=.
أُضيف في الإصدار 261.
--json=وضع
أُضيف في الإصدار 255.
-j
أُضيف في الإصدار 255.
--quiet، -q
أُضيف في الإصدار 257.
--graceful=
أُضيف في الإصدار 257.
--timeout=
أُضيف في الإصدار 257.
--exec
الآن إذا تم تحديد --exec، فإن المعامل الثالث لـ call ليس اختيارياً (أي معاملات استدعاء الطريقة).
أُضيف في الإصدار 258.
--push-fd=
أُضيف في الإصدار 258.
--system، --user
أُضيف في الإصدار 260.
--no-ask-password
--no-pager
-h، --help
--version
الملفات والأدلة¶
/run/varlink/registry/
استخدم varlinkctl list-registry لعرض محتويات هذا الدليل.
(سيتم تجاهل العقد التي لا تعتبر عقد مقبس ولا روابط رمزية لها. قد يقدم امتداد مستقبلي ملفات وأدلة عادية لتعزيز وظيفة السجل.)
أُضيف في الإصدار 260.
أمثلة¶
مثال 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:systemd-creds org.varlink.service.GetInfo '{}'
مثال 5. تقديم أداة فك ضغط معزولة عبر ترقية البروتوكول
تعرض وحدات المقبس والخدمة التالية فك ضغط xz كخدمة Varlink. يتصل العملاء ويرسلون بيانات مضغوطة عبر الاتصال المُرقّى، ويتلقون إخراجًا مفكوك الضغط في المقابل.
# /etc/systemd/system/varlink-decompress-xz.socket [Socket] ListenStream=/run/varlink/registry/com.example.Decompress.XZ [Install] WantedBy=sockets.target # /etc/systemd/system/varlink-decompress-xz.service [Service] ExecStart=varlinkctl serve com.example.Decompress.XZ xz -d DynamicUser=yes PrivateNetwork=yes ProtectSystem=strict ProtectHome=yes NoNewPrivileges=yes SystemCallFilter=~@privileged @resources MemoryMax=256M
يمكن للعميل بعد ذلك فك ضغط البيانات عبر هذه الخدمة:
$ echo "hello" | xz | varlinkctl call --upgrade \
unix:/run/varlink/registry/com.example.Decompress.XZ \
com.example.Decompress.XZ '{}' hello
للاختبار السريع بدون ملفات الوحدات، يمكن استخدام systemd-socket-activate لتوفير مقبس الاستماع:
$ systemd-socket-activate -l /tmp/decompress.sock -- varlinkctl serve com.example.Decompress.XZ xz -d &
$ echo "hello" | xz | varlinkctl call --upgrade unix:/tmp/decompress.sock com.example.Decompress.XZ '{}'
hello
انظر أيضًا¶
busctl(1), Varlink[1]
ملاحظات¶
- 1.
- Varlink
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 261~rc3 |