'\" t .TH "VARLINKCTL" "1" "" "systemd 261.2" "varlinkctl" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" varlinkctl \- درون‌نگری و فراخوانی سرویس‌های Varlink .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] info \fIADDRESS\fR .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] list\-interfaces \fIADDRESS\fR .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] list\-methods \fIADDRESS\fR [\fIINTERFACE\fR...] .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] introspect \fIADDRESS\fR [\fIINTERFACE\fR...] .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] call \fIADDRESS\fR \fIMETHOD\fR [\fIARGUMENTS\fR] .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] \-\-exec call \fIADDRESS\fR \fIMETHOD\fR \fIARGUMENTS\fR \-\- \fICMDLINE\fR .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] serve \fIMETHOD\fR {\fICMDLINE\fR...} .HP \w'\fBvarlinkctl\fR\ 'u \fBvarlinkctl\fR [OPTIONS...] validate\-idl [\fIFILE\fR] .SH "توضیحات (DESCRIPTION)" .PP \fBvarlinkctl\fR ممکن است برای درون‌نگری و فراخوانی سرویس‌های \m[blue]\fBVarlink\fR\m[]\&\s-2\u[1]\d\s+2 استفاده شود\&. .PP سرویس‌ها با یکی از موارد زیر ارجاع داده می‌شوند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مرجع سرویس Varlink که با رشته‌ی "unix:" آغاز شده و به دنبال آن یک مسیر مطلق سوکت \fBAF_UNIX\fR، یا رشته‌ی "@" و یک رشته‌ی دلخواه قرار می‌گیرد (مورد دوم برای ارجاع به سوکت‌ها در فضای نام انتزاعی یا abstract namespace است)\&. در این حالت، یک اتصال سوکت جریانی (stream socket) به سوکت مشخص‌شده برقرار می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مرجع سرویس Varlink که با رشته‌ی "exec:" آغاز شده و به دنبال آن مسیر مطلق یک فایل اجرایی (binary) قرار می‌گیرد\&. در این حالت، فرایند مشخص‌شده به صورت محلی انشعاب می‌یابد (fork می‌شود) و سوکت جریانی متصل‌شده به آن ارسال می‌گردد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مرجع سرویس Varlink که با رشته‌ی "ssh\-unix:" آغاز شده و به دنبال آن مشخصات میزبان SSH، سپس ":"، و به دنبال آن یک مسیر مطلق سوکت \fBAF_UNIX\fR می‌آید\&. (این مورد به OpenSSH نسخه 9\&.4 یا جدیدتر در سمت سرور نیاز دارد و سوکت‌های فضای نام انتزاعی پشتیبانی نمی‌شوند\&.) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مرجع سرویس Varlink که با رشته‌ی "ssh\-exec:" آغاز شده و به دنبال آن مشخصات میزبان SSH، سپس ":"، و به دنبال آن یک خط فرمان می‌آید\&. در این حالت، دستور فراخوانی شده و پروتکل Varlink بر روی ورودی و خروجی استاندارد دستورِ فراخوانی‌شده گفتگو می‌شود\&. .RE .PP برای سهولت، این دو نحو ساده‌تر (و مازاد) آدرس سرویس نیز پشتیبانی می‌شوند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مسیر فایل‌سیستمی به یک سوکت \fBAF_UNIX\fR، خواه مطلق (یعنی با "/" شروع شود) یا نسبی (که در این صورت باید با "\&./" شروع شود)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مسیر فایل‌سیستمی به یک فایل اجرایی، خواه مطلق یا نسبی (همانند بالا، به ترتیب باید با "/" یا "\&./" شروع شود)\&. .RE .SH "فرمان‌ها (COMMANDS)" .PP فرمان‌های زیر پشتیبانی می‌شوند: .PP \fBinfo\fR \fIADDRESS\fR .RS 4 اطلاعات مختصری درباره سرویس مشخص‌شده، شامل نام سازنده و فهرستی از رابط‌های پیاده‌سازی‌شده را نمایش می‌دهد\&. آدرس سرویس را در یکی از قالب‌های شرح‌داده‌شده در بالا انتظار دارد\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBlist\-interfaces\fR \fIADDRESS\fR .RS 4 فهرستی از رابط‌های پیاده‌سازی‌شده توسط سرویس مشخص‌شده را نمایش می‌دهد\&. آدرس سرویس را در یکی از قالب‌های شرح‌داده‌شده در بالا انتظار دارد\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBlist\-methods\fR \fIADDRESS\fR [\fIINTERFACE\&...\fR] .RS 4 فهرستی از متدهای پیاده‌سازی‌شده توسط سرویس مشخص‌شده را نمایش می‌دهد\&. آدرس سرویس در یکی از قالب‌های شرح‌داده‌شده در بالا و همچنین یک یا چند نام رابط را انتظار دارد\&. اگر نام رابطی مشخص نشود، تمام متدهای همه رابط‌های پیاده‌سازی‌شده توسط سرویس را فهرست می‌کند، در غیر این صورت فقط متدهای موجود در رابط‌های مشخص‌شده را فهرست می‌کند\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fBintrospect\fR \fIADDRESS\fR [\fIINTERFACE\&...\fR] .RS 4 تعاریف رابط‌های مشخص‌شده را که توسط سرویس مشخص‌شده ارائه شده‌اند نمایش می‌دهد\&. آدرس سرویس در یکی از قالب‌های شرح‌داده‌شده در بالا و به صورت اختیاری یک یا چند نام رابط Varlink را انتظار دارد\&. اگر نام رابطی مشخص نشود، تمام رابط‌های ارائه‌شده توسط سرویس را نمایش می‌دهد\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBcall\fR \fIADDRESS\fR \fIMETHOD\fR [\fIARGUMENTS\fR] .RS 4 متد مشخص‌شده از سرویس مشخص‌شده را فراخوانی می‌کند\&. یک آدرس سرویس در قالب شرح‌داده‌شده در بالا، یک نام کامل متد Varlink، و یک شیء آرگومان‌های JSON را انتظار دارد\&. اگر شیء آرگومان‌ها مشخص نشود، به جای آن از STDIN خوانده می‌شود\&. برای ارسال یک فهرست خالی از پارامترها، شیء خالی "{}" را مشخص کنید\&. .sp پارامترهای پاسخ به عنوان اشیاء JSON در STDOUT نوشته می‌شوند\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBserve\fR \fIMETHOD\fR \fICMDLINE\&...\fR .RS 4 یک سرور Varlink را اجرا می‌کند که درخواست‌های ارتقای پروتکل را برای متد مشخص‌شده می‌پذیرد و اتصال ارتقایافته را به ورودی و خروجی استاندارد دستور مشخص‌شده متصل می‌کند\&. این دستور می‌تواند به عنوان یک همتای سمت سرور برای \fBcall\fR \fB\-\-upgrade\fR عمل کند\&. .sp سوکت شنود باید از طریق فعال‌سازی سوکت (یعنی پروتکل \fI$LISTEN_FDS\fR) منتقل شود، که این امر این دستور را برای استفاده در واحدهای سرویس فعال‌شونده با سوکت مناسب می‌سازد\&. هنگامی که یک کلاینت متد مشخص‌شده را با پرچم upgrade فراخوانی می‌کند، سرور پاسخی برای تأیید ارتقا ارسال کرده، سپس انشعاب یافته (fork می‌کند) و خط فرمان داده‌شده را با اتصال ارتقایافته بر روی ورودی و خروجی استاندارد خود اجرا می‌نماید\&. .sp این کار عملاً هر دستوری را که با پروتکلی از طریق ورودی/خروجی استاندارد گفتگو می‌کند، به یک سرویس Varlink تبدیل می‌سازد که از طریق رجیستری سرویس‌ها قابل کشف بوده و از طریق اعتبارسنجی سوکت احراز هویت می‌شود\&. از آنجا که هر اتصال توسط یک فرایند فرزند منشعب‌شده مدیریت می‌شود، واحد سرویس می‌تواند گزینه‌های محدودسازی محیطی (sandboxing) متعلق به systemd (مانند \fIProtectSystem=\fR و غیره) را اعمال کند و در محیط فراخواننده کار نمی‌کند\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fBlist\-registry\fR .RS 4 فهرستی از سرویس‌های Varlink را که در حال حاضر در رجیستری سرویس ثبت شده‌اند، به همراه سوکت‌های نقطه ورود آن‌ها نمایش می‌دهد\&. (در حال حاضر، این دستور صرفاً سوکت‌ها و سوکت‌های دارای پیوند نمادین را در /run/varlink/registry/ برمی‌شمرد، به زیر مراجعه کنید\&.) .sp افزوده‌شده در نسخه 260\&. .RE .PP \fBvalidate\-idl\fR [\fIFILE\fR] .RS 4 یک فایل تعریف رابط Varlink را می‌خواند، آن را تجزیه و اعتبارسنجی می‌کند، سپس آن را با برجسته‌سازی نحوی خروجی می‌دهد\&. این کار نحو و سازگاری درونی رابط را بررسی می‌کند\&. نام فایلی را برای خواندن تعریف رابط از آن انتظار دارد\&. در صورت حذف، تعریف رابط را از STDIN می‌خواند\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fBhelp\fR .RS 4 راهنمای نحو دستور را نمایش می‌دهد\&. .sp افزوده‌شده در نسخه 255\&. .RE .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-\-more\fR .RS 4 هنگام استفاده با \fBcall\fR: انتظار چندین پاسخ متد را داشته باشد\&. اگر این پرچم تنظیم شود، فراخوانی متد با پرچم تنظیم‌شده‌ی \fBmore\fR ارسال می‌شود که به سرویس اعلام می‌کند در صورت نیاز، چندین پاسخ تولید کند\&. دستور تا زمانی که سرویس پیام پاسخی مبنی بر اینکه این آخرین پیام در مجموعه است ارسال کند (یا در صورتی که مهلت زمانی پیکربندی‌شده سپری شود، زیر را ببینید) در حال اجرا باقی می‌ماند\&. این پرچم فقط باید برای فراخوانی‌های متدی که از این سازوکار پشتیبانی می‌کنند تنظیم شود\&. .sp اگر این حالت فعال باشد، خروجی به صورت خودکار به حالت JSON\-SEQ تغییر می‌یابد تا اشیاء پاسخ جداگانه به سادگی قابل تشخیص باشند\&. .sp این سوئیچ هیچ اثری بر مهلت زمانی فراخوانی متد که به طور پیش‌فرض اعمال می‌شود ندارد\&. صرف‌نظر از اینکه \fB\-\-more\fR مشخص شده باشد یا خیر، مهلت زمانی پیش‌فرض ۴۵ ثانیه خواهد بود\&. از \fB\-\-timeout=\fR (زیر را ببینید) برای تغییر یا غیرفعال کردن مهلت زمانی استفاده کنید\&. هنگام اجرای یک فراخوانی متد که پیوسته به‌روزرسانی‌ها را برمی‌گرداند، معمولاً مطلوب است که مهلت زمانی با \fB\-\-timeout=infinity\fR غیرفعال شود\&. از سوی دیگر، هنگام اجرای فراخوانی متد با \fB\-\-more\fR به منظور شمارش اشیاء (که احتمالاً سریعاً تکمیل می‌شود)، معمولاً به دلایل پایداری و استحکام، سودمند است که منطق مهلت زمانی فعال بماند\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-E\fR .RS 4 میانبری برای \fB\-\-more \-\-timeout=infinity\fR\&. این سوئیچ برای فراخوانی‌های متدی که اشتراک در یک جریان پیوسته از به‌روزرسانی‌ها را پیاده‌سازی می‌کنند، مفید است\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fB\-\-collect\fR .RS 4 این گزینه شبیه به \fB\-\-more\fR است، اما به جای حالت JSON\-SEQ، تمام پاسخ‌ها را در یک آرایه JSON جمع‌آوری کرده و چاپ می‌کند\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-oneway\fR .RS 4 هنگام استفاده با \fBcall\fR: منتظر پاسخ متد نباشد\&. اگر این پرچم تنظیم شود، فراخوانی متد با پرچم تنظیم‌شده‌ی \fBoneway\fR ارسال می‌شود (دستور بلافاصله پس از آن خارج می‌شود) که به سرویس اعلام می‌کند پاسخی تولید نکند\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-upgrade\fR .RS 4 هنگام استفاده با \fBcall\fR: درخواست ارتقای پروتکل بدهد\&. فراخوانی متد با پرچم تنظیم‌شده‌ی \fBupgrade\fR ارسال می‌شود\&. انتظار می‌رود سرویس یک پاسخ واحد برای تأیید ارتقا ارسال کند\&. پس از پاسخ، پروتکل Varlink دیگر بر روی اتصال اعمال نخواهد شد\&. .sp اگر \fB\-\-exec\fR مشخص نشده باشد، \fBvarlinkctl\fR به عنوان یک پروکسی دوطرفه عمل می‌کند: داده‌های خوانده‌شده از ورودی استاندارد به اتصال ارتقایافته هدایت می‌شوند و داده‌های دریافتی از اتصال در خروجی استاندارد نوشته می‌شوند\&. .sp اگر \fB\-\-exec\fR مشخص شده باشد، سوکت اتصال ارتقایافته بر روی هر دوی ورودی استاندارد و خروجی استانداردِ فرایندِ فراخوانی‌شده قرار می‌گیرد\&. این شبیه به رفتار معمول \fB\-\-exec\fR (بدون \fB\-\-upgrade\fR) است که پاسخ فراخوانی متد را بر روی ورودی استاندارد قرار می‌دهد\&. بنابراین فرایند فراخوانی‌شده می‌تواند به سادگی از stdin/stdout برای برقراری ارتباط بر بستر پروتکل ارتقایافته بخواند و در آن بنویسد\&. .sp این گزینه ممکن است با \fB\-\-more\fR، \fB\-\-oneway\fR، \fB\-\-collect\fR، \fB\-\-graceful=\fR، یا \fB\-\-push\-fd=\fR ترکیب نشود\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-json=\fR\fB\fIMODE\fR\fR .RS 4 قالب‌بندی خروجی JSON را انتخاب می‌کند؛ یا "pretty" برای خروجی دارای تورفتگی مناسب و رنگی، یا "short" برای خروجی فشرده با حداقل فاصله سفید و بدون خطوط جدید\&. پیش‌فرض "short" است\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-j\fR .RS 4 معادل \fB\-\-json=pretty\fR هنگام فراخوانی به صورت تعاملی از یک ترمینال\&. در غیر این صورت معادل \fB\-\-json=short\fR است، به ویژه زمانی که خروجی به برنامه دیگری هدایت (pipe) می‌شود\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-quiet\fR, \fB\-q\fR .RS 4 سرکوب خروجی پاسخ‌های فراخوانی متد\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fB\-\-graceful=\fR .RS 4 یک نام خطای کامل (واجد شرایط) Varlink، یعنی یک نام رابط به همراه پسوند نام خطا که با نقطه جدا شده‌اند را می‌پذیرد، مانند "org\&.varlink\&.service\&.InvalidParameter"\&. اطمینان حاصل می‌کند که اگر فراخوانی متد با خطای مشخص‌شده ناموفق شود، این حالت به عنوان موفقیت تلقی گردد؛ یعنی باعث می‌شود فراخوانی \fBvarlinkctl\fR با کد خروج صفر به پایان برسد\&. این گزینه ممکن است بیش از یک بار استفاده شود تا چندین خطای مختلف به عنوان موفقیت در نظر گرفته شوند\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fB\-\-timeout=\fR .RS 4 یک مهلت زمانی بر حسب ثانیه را به عنوان پارامتر انتظار دارد\&. به طور پیش‌فرض، یک مهلت زمانی ۴۵ ثانیه‌ای اعمال می‌شود\&. برای خاموش کردن مهلت زمانی، "infinity" یا یک رشته خالی را مشخص کنید\&. .sp افزوده‌شده در نسخه 257\&. .RE .PP \fB\-\-exec\fR .RS 4 پس از اینکه فراخوانی متد صادرشده از طریق \fBcall\fR با موفقیت تکمیل شد، خط فرمان مشخص‌شده را اجرا و زنجیره‌ای (chainload) می‌کند، در حالی که پارامترهای خروجی فراخوانی متد به صورت سریال‌شده به JSON به ورودی استاندارد فرستاده می‌شوند (و خروجی استاندارد و خطای استاندارد از فرایند فراخواننده به ارث برده می‌شوند)\&. علاوه بر این، هر توصیف‌کننده فایل که از سوکت ارتباطی زیرین برگشت داده شود، از طریق پروتکل معمول \fI$LISTEN_FDS\fR به فرایند فراخوانی‌شده ارسال می‌گردد\&. این قابلیت می‌تواند برای پردازش و دریافت پاسخ‌هایی که همراه با توصیف‌کننده‌های فایل مرتبط هستند به روشی مناسب استفاده شود\&. .sp توجه داشته باشید که اگر \fB\-\-exec\fR مشخص شود، پارامتر سوم \fBcall\fR (یعنی پارامترهای فراخوانی متد) اختیاری نخواهد بود\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-push\-fd=\fR .RS 4 یک عدد توصیف‌کننده فایل عددی را به عنوان پارامتر می‌پذیرد\&. در صورتی که بستر انتقال زیرین از این کار پشتیبانی کند، ممکن است برای ارسال یک توصیف‌کننده فایل به همراه فراخوانی متد استفاده شود\&. ممکن است چندین بار برای ارسال چندین توصیف‌کننده فایل استفاده شود، با حفظ ترتیبی که در آن مشخص شده‌اند\&. توصیف‌کننده‌های فایل مشخص‌شده باید به فراخوانی \fBvarlinkctl\fR منتقل شوند\&. به صورت اختیاری، به جای یک شماره توصیف‌کننده فایل عددی، می‌توان یک مسیر فایل‌سیستمی مطلق یا نسبی (که در حالت دوم باید پیشوند "\&./" داشته باشد) را مشخص کرد که در حالت فقط‌خواندنی باز می‌شود\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-system\fR, \fB\-\-user\fR .RS 4 تعیین می‌کند که هنگام استفاده از دستور \fBlist\-registry\fR پرس‌وجو از رجیستری سیستم انجام شود یا رجیستری کاربر\&. به طور پیش‌فرض، از رجیستری سیستم پرس‌وجو می‌شود\&. .PP افزوده‌شده در نسخه 260\&. .RE .PP \fB\-\-no\-ask\-password\fR .RS 4 برای عملیات‌های نیازمند امتیاز، از کاربر درخواست احراز هویت نکند\&. .RE .PP \fB\-\-no\-pager\fR .RS 4 خروجی را به یک صفحه‌بند (pager) هدایت نکند\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن راهنمای کوتاه را چاپ کرده و خارج شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته نسخه کوتاه را چاپ کرده و خارج شود\&. .RE .SH "فایل‌ها و دایرکتوری‌ها (FILES & DIRECTORIES)" .PP /run/varlink/registry/ .RS 4 دایرکتوری حاوی اینودهای سوکت نقطه ورود \fBAF_UNIX\fR (یا پیوندهای نمادین به آن‌ها) مربوط به رابط‌های شناخته‌شده و عمومی Varlink در سیستم محلی\&. نام آن‌ها بر اساس رابط Varlink که پیاده‌سازی می‌کنند تعیین می‌شود\&. .sp از \fBvarlinkctl list\-registry\fR برای نمایش محتویات این دایرکتوری استفاده کنید\&. .sp (اینودهایی که نه به عنوان اینودهای سوکت و نه به عنوان پیوندهای نمادین به آن‌ها واجد شرایط نباشند، باید نادیده گرفته شوند\&. یک توسعه در آینده ممکن است فایل‌ها و دایرکتوری‌های معمولی را برای بهبود قابلیت‌های رجیستری معرفی کند\&.) .sp افزوده‌شده در نسخه 260\&. .RE .SH "مثال‌ها (EXAMPLES)" .PP \fBمثال\ \&۱.\ \&بررسی یک سرویس\fR .PP سه دستور زیر سرویس "io\&.systemd\&.Resolve" پیاده‌سازی‌شده توسط \fBsystemd-resolved.service\fR(8) را بازرسی می‌کنند، اطلاعات عمومی سرویس و رابط‌های پیاده‌سازی‌شده را فهرست می‌کنند و سپس تعریف رابط اصلی آن را نمایش می‌دهند: .sp .if n \{\ .RS 4 .\} .nf $ 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, \&... .fi .if n \{\ .RE .\} .PP (تعریف رابط در مثال بالا برای رعایت اختصار کوتاه شده است\&.) .PP \fBمثال\ \&۲.\ \&فراخوانی یک متد\fR .PP دستور زیر یک نام میزبان را از طریق فراخوانی متد \fBResolveHostname\fR از \fBsystemd-resolved.service\fR(8) تحلیل می‌کند\&. .sp .if n \{\ .RS 4 .\} .nf $ varlinkctl call /run/systemd/resolve/io\&.systemd\&.Resolve io\&.systemd\&.Resolve\&.ResolveHostname \*(Aq{"name":"systemd\&.io","family":2}\*(Aq \-j { "addresses" : [ { "ifindex" : 2, "family" : 2, "address" : [ 185, 199, 111, 153 ] } ], "name" : "systemd\&.io", "flags" : 1048577 } .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۳.\ \&بررسی یک فایل اجرایی سرویس\fR .PP دستور زیر فایل اجرایی /usr/lib/systemd/systemd\-pcrextend و رابط‌های IPC ارائه‌شده توسط آن را بازرسی می‌کند\&. سپس متدی را بر روی آن فراخوانی می‌کند: .sp .if n \{\ .RS 4 .\} .nf # 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 \*(Aq{"pcr":15,"text":"foobar"}\*(Aq {} .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۴.\ \&فراخوانی یک متد از راه دور از طریق SSH\fR .PP دستور زیر گزارشی درباره هویت یک میزبان راه دور به نام "somehost" را از \fBsystemd-hostnamed.service\fR(8) با اتصال از طریق SSH به سوکت \fBAF_UNIX\fR که سرویس روی آن شنود می‌کند، دریافت می‌نماید: .sp .if n \{\ .RS 4 .\} .nf # varlinkctl call ssh\-unix:somehost:/run/systemd/io\&.systemd\&.Hostname io\&.systemd\&.Hostname\&.Describe \*(Aq{}\*(Aq .fi .if n \{\ .RE .\} .PP برای فراخوانی مستقیم یک فایل باینری سرویس Varlink بر روی میزبان از راه دور، به جای ارتباط با سرویس از طریق \fBAF_UNIX،\fR می‌توان این کار را به شکل زیر انجام داد: .sp .if n \{\ .RS 4 .\} .nf # varlinkctl call ssh\-exec:somehost:systemd\-creds org\&.varlink\&.service\&.GetInfo \*(Aq{}\*(Aq .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۵.\ \&ارائه یک فشرده‌گشای ایزوله‌شده از طریق ارتقای پروتکل\fR .PP واحدهای سوکت و سرویس زیر، فشرده‌گشایی \fBxz\fR را به عنوان یک سرویس Varlink ارائه می‌دهند\&. کلاینت‌ها متصل می‌شوند و داده‌های فشرده‌شده را از طریق اتصال ارتقایافته ارسال کرده و در پاسخ خروجی فشرده‌گشایی‌شده را دریافت می‌کنند\&. .sp .if n \{\ .RS 4 .\} .nf # /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 .fi .if n \{\ .RE .\} .PP سپس یک کلاینت می‌تواند داده‌ها را از طریق این سرویس فشرده‌گشایی کند: .sp .if n \{\ .RS 4 .\} .nf $ echo "hello" | xz | varlinkctl call \-\-upgrade \e unix:/run/varlink/registry/com\&.example\&.Decompress\&.XZ \e com\&.example\&.Decompress\&.XZ \*(Aq{}\*(Aq hello .fi .if n \{\ .RE .\} .PP برای آزمایش سریع بدون نیاز به فایل‌های واحد، \fBsystemd\-socket\-activate\fR می‌تواند برای ارائه سوکت شنود استفاده شود: .sp .if n \{\ .RS 4 .\} .nf $ 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 \*(Aq{}\*(Aq hello .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .PP \fBbusctl\fR(1), \m[blue]\fBVarlink\fR\m[]\&\s-2\u[1]\d\s+2 .SH "نکات (NOTES)" .IP " 1." 4 Varlink .RS 4 \%https://varlink.org .RE