'\" t .TH "ORG\&.FREEDESKTOP\&.MACHINE1" "5" "" "systemd 261.2" "org.freedesktop.machine1" .\" ----------------------------------------------------------------- .\" * 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)" org.freedesktop.machine1 \- رابط کاربری D-Bus سرویس مدیریت ماشینهای مجازی و کانتینرها (systemd-machined) .SH "توضیحات (DESCRIPTION)" .PP \fBsystemd-machined.service\fR(8) یک سرویس سیستمی است که وضعیت ماشین‌های مجازی و کانتینرهای در حال اجرای محلی را پیگیری می‌کند\&. این صفحه رابط کاربری D\-Bus را شرح می‌دهد\&. .SH "رابط D-BUS (THE D-BUS INTERFACE)" .SH "شیء MANAGER (THE MANAGER OBJECT)" .PP این سرویس رابط‌های زیر را روی شیء Manager در گذرگاه ارائه می‌دهد: .sp .if n \{\ .RS 4 .\} .nf node /org/freedesktop/machine1 { interface org\&.freedesktop\&.machine1\&.Manager { methods: GetMachine(in s name, out o machine); GetImage(in s name, out o image); GetMachineByPID(in u pid, out o machine); ListMachines(out a(ssso) machines); ListImages(out a(ssbttto) images); CreateMachine(in s name, in ay id, in s service, in s class, in u leader, in s root_directory, in a(sv) scope_properties, out o path); CreateMachineWithNetwork(in s name, in ay id, in s service, in s class, in u leader, in s root_directory, in ai ifindices, in a(sv) scope_properties, out o path); CreateMachineEx(in s name, in a(sv) properties, in a(sv) scope_properties, out o path); RegisterMachine(in s name, in ay id, in s service, in s class, in u leader, in s root_directory, out o path); RegisterMachineWithNetwork(in s name, in ay id, in s service, in s class, in u leader, in s root_directory, in ai ifindices, out o path); RegisterMachineEx(in s name, in a(sv) properties, out o path); UnregisterMachine(in s name); TerminateMachine(in s id); KillMachine(in s name, in s whom, in i signal); GetMachineAddresses(in s name, out a(iay) addresses); GetMachineSSHInfo(in s name, out s ssh_address, out s ssh_private_key_path); GetMachineOSRelease(in s name, out a{ss} fields); OpenMachinePTY(in s name, out h pty, out s pty_path); OpenMachineLogin(in s name, out h pty, out s pty_path); OpenMachineShell(in s name, in s user, in s path, in as args, in as environment, out h pty, out s pty_path); BindMountMachine(in s name, in s source, in s destination, in b read_only, in b mkdir); CopyFromMachine(in s name, in s source, in s destination); CopyToMachine(in s name, in s source, in s destination); CopyFromMachineWithFlags(in s name, in s source, in s destination, in t flags); CopyToMachineWithFlags(in s name, in s source, in s destination, in t flags); OpenMachineRootDirectory(in s name, out h fd); GetMachineUIDShift(in s name, out u shift); RemoveImage(in s name); RenameImage(in s name, in s new_name); CloneImage(in s name, in s new_name, in b read_only); MarkImageReadOnly(in s name, in b read_only); GetImageHostname(in s name, out s hostname); GetImageMachineID(in s name, out ay id); GetImageMachineInfo(in s name, out a{ss} machine_info); GetImageOSRelease(in s name, out a{ss} os_release); SetPoolLimit(in t size); SetImageLimit(in s name, in t size); CleanPool(in s mode, out a(st) images); MapFromMachineUser(in s name, in u uid_inner, out u uid_outer); MapToMachineUser(in u uid_outer, out s machine_name, out o machine_path, out u uid_inner); MapFromMachineGroup(in s name, in u gid_inner, out u gid_outer); MapToMachineGroup(in u gid_outer, out s machine_name, out o machine_path, out u gid_inner); signals: MachineNew(s machine, o path); MachineRemoved(s machine, o path); properties: @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("false") readonly s PoolPath = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("false") readonly t PoolUsage = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("false") readonly t PoolLimit = \&.\&.\&.; }; interface org\&.freedesktop\&.DBus\&.Peer { \&.\&.\&. }; interface org\&.freedesktop\&.DBus\&.Introspectable { \&.\&.\&. }; interface org\&.freedesktop\&.DBus\&.Properties { \&.\&.\&. }; }; .fi .if n \{\ .RE .\} .SS "متدها (Methods)" .PP متد \fBGetMachine()\fR می‌تواند برای دریافت مسیر شیء ماشین برای ماشینی با نام مشخص‌شده استفاده شود\&. به همین ترتیب، متد \fBGetMachineByPID()\fR شیء ماشینی را که شناسهٔ فرایند (PID) مشخص‌شده به آن تعلق دارد (در صورت وجود) دریافت می‌کند\&. .PP متد \fBGetImage()\fR می‌تواند برای دریافت مسیر شیء تصویر، برای تصویری با نام مشخص‌شده به کار رود\&. .PP متد \fBListMachines()\fR آرایه‌ای از تمام ماشین‌های ثبت‌شدهٔ فعلی را برمی‌گرداند\&. ساختارهای موجود در این آرایه شامل فیلدهای زیر است: نام ماشین، کلاس ماشین، یک شناسه برای سرویسی که ماشین را ثبت کرده است و مسیر شیء ماشین\&. .PP متد \fBListImages()\fR آرایه‌ای از تمام تصویرهای شناخته‌شدهٔ فعلی را برمی‌گرداند\&. ساختارهای موجود در این آرایه شامل فیلدهای زیر است: نام تصویر، نوع، پرچم فقط‌خواندنی، زمان ایجاد، زمان تغییر، فضای دیسک کنونی، و مسیر شیء تصویر\&. .PP متد \fBCreateMachine()\fR می‌تواند برای ثبت یک ماشین مجازی یا کانتینر جدید در \fBsystemd\-machined\fR و ایجاد یک واحد دامنه (scope unit) برای آن استفاده شود\&. این متد آرگومان‌های زیر را می‌پذیرد: نام ماشینی که توسط ثبت‌کننده انتخاب شده، یک UUID اختیاری به‌صورت آرایه‌ای ۳۲ بایتی، یک رشته که سرویس ثبت‌کنندهٔ ماشین را مشخص می‌کند، یک رشتهٔ کلاس، شناسهٔ فرایند (PID) فرایند راهبر (leader) ماشین، یک دایرکتوری ریشهٔ اختیاری برای کانتینر، و آرایه‌ای از ویژگی‌های اضافی که برای ثبت دامنه استفاده می‌شود\&. نام ماشین مجازی باید برای استفاده به‌عنوان نام میزبان (hostname) مناسب باشد، بنابراین باید از قوانین معمول نام میزبان در DNS و همچنین محدودیت‌های نام میزبان در لینوکس پیروی کند\&. به‌طور مشخص، فقط اسکی ۷ بیتی مجاز است، حداکثر طول ۶۴ نویسه اعمال می‌شود، فقط نویسه‌های مجموعهٔ "a\-zA\-Z0\-9\-_\&." مجاز هستند، نام نباید با نقطه آغاز شود، و نباید شامل دو نقطهٔ متوالی در کنار هم باشد\&. مدیران کانتینر و ماشین مجازی در حالت ایده‌آل باید از نام میزبانی که به‌صورت داخلی در ماشین استفاده می‌شود برای این پارامتر استفاده کنند\&. این توصیه به این منظور انجام شده است که نام ماشین به‌طور طبیعی با استفاده از \fBnss-mymachines\fR(8) قابل تفکیک و حل‌وفصل (resolve) باشد\&. اگر یک مدیر کانتینر نیاز به گنجاندن نویسه‌هایی خارج از محدودهٔ مشخص‌شده داشته باشد، گریزنویسی (escaping) الزامی است، که احتمالاً با استفاده از "_" به‌عنوان نویسهٔ گریز انجام می‌شود\&. گزینهٔ دیگر (که تا حدی طبیعی است) استفاده از کدگذاری اینترنتی IDNA است\&. شناسهٔ UUID به‌صورت یک آرایهٔ ۳۲ بایتی ارسال می‌شود؛ یا اگر UUID مناسبی در دسترس نباشد، یک آرایهٔ خالی (با طول صفر) یا آرایه‌ای با بایت‌های صفر ارسال خواهد شد\&. شناسهٔ UUID باید ماشین مجازی/کانتینر را به‌صورت یکتا شناسایی کند و در حالت ایده‌آل باید همان UUID باشد که /etc/machine\-id در ماشین مجازی/کانتینر از روی آن مقداردهی اولیه می‌شود\&. رشتهٔ سرویس می‌تواند فرم آزاد داشته باشد، اما توصیه می‌شود که یک شناسهٔ کوتاه با حروف کوچک مانند "systemd\-nspawn"، "libvirt\-lxc" یا موارد مشابه ارسال شود\&. رشتهٔ کلاس باید "container" یا "vm" باشد که مشخص می‌کند آیا ماشین مورد نظر برای ثبت، از کلاس مربوطه است یا خیر\&. شناسهٔ PID راهبر باید PID میزبان برای فرایند init کانتینر یا فرایند محصورکنندهٔ ماشین مجازی باشد\&. اگر دایرکتوری ریشهٔ کانتینر مشخص و در سلسله‌مراتب سیستم میزبان در دسترس باشد، باید ارسال شود (توجه داشته باشید که این مورد صرفاً جنبهٔ اطلاع‌رسانی دارد و استفادهٔ دیگری از آن نخواهد شد)\&. در غیر این صورت، رشتهٔ خالی ارسال کنید\&. در نهایت، ویژگی‌های دامنه همانند متد \fBStartTransientUnit()\fR مربوط به PID1 به‌صورت آرایه ارسال می‌شوند\&. فراخوانی این متد به‌طور داخلی یک واحد دامنهٔ گذرا (transient scope unit) را برای کلاینت فراخواننده (با استفاده از scope_properties ارسالی) ثبت می‌کند و PID راهبر را به داخل آن منتقل می‌نماید\&. این متد یک مسیر شیء برای شیء ماشین ثبت‌شده برمی‌گرداند که رابط org\&.freedesktop\&.machine1\&.Machine را پیاده‌سازی می‌کند (پایین را ببینید)\&. همچنین برای جزئیات دربارهٔ واحدهای دامنه و نحوهٔ تغییر تنظیمات کنترل منابع روی ماشین ایجادشده در زمان اجرا، به \m[blue]\fBواسط‌های جدید گروه‌های کنترل (Control Group)\fR\m[]\&\s-2\u[1]\d\s+2 مراجعه کنید\&. .PP متد \fBRegisterMachine()\fR مشابه \fBCreateMachine()\fR است\&. با این حال، این متد تنها یک ماشین را ثبت می‌کند و برای آن واحد دامنه ایجاد نمی‌نماید\&. در عوض، واحدِ خودِ فراخواننده ثبت می‌شود\&. توصیه می‌کنیم این متد را فقط برای مدیران کانتینر یا ماشین مجازی استفاده کنید که چندین بار اجرا می‌شوند، به‌طوری که برای هر کانتینر/ماشین مجازی که مدیریت می‌کنند یک نمونه اجرا شده و به‌عنوان سرویس‌های سیستمی فراخوانی می‌شوند\&. .PP متدهای \fBRegisterMachineEx()\fR و \fBCreateMachineEx()\fR مشابه همتایان خود هستند، اما به جای تعداد ثابتی از پارامترها، یک سری از جفت‌های کلید/مقدار را دریافت می‌کنند تا امکان گسترش در آینده فراهم شود، و به جای PID، یک توصیف‌گر PIDFD برای پارامتر leader دریافت می‌کنند\&. پارامترهای پشتیبانی‌شده در حال حاضر عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "Id" ("ay"): شناسهٔ یکتای UUID ماشین\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "Service" ("s"): رشتهٔ مشخص‌کنندهٔ سرویس\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "Class" ("s"): رشتهٔ کلاس ماشین\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "LeaderPIDFD" ("h"): یک PIDFD برای فرایند راهبر ماشین\&. این پارامتر اختیاری است\&. در صورت مشخص شدن، نسبت به ترکیب "LeaderPID" و "LeaderPIDFDID" ترجیح داده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "LeaderPID" ("u"): شناسهٔ فرایند (PID) برای فرایند راهبر ماشین\&. این پارامتر اختیاری است\&. باید همراه با "LeaderPIDFDID" مشخص شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "LeaderPIDFDID" ("t"): یک PIDFDID برای فرایند راهبر ماشین\&. این پارامتر اختیاری است\&. باید همراه با "LeaderPID" مشخص شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "RootDirectory" ("s"): دایرکتوری ریشهٔ کانتینر\&. این پارامتر اختیاری است و صرفاً برای اهداف اطلاع‌رسانی در نظر گرفته شده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "NetworkInterfaces" ("ai"): آرایه‌ای از نمایه‌های واسط شبکه، مشابه \fBCreateMachineWithNetwork()\fR\&. این پارامتر اختیاری است\&. .RE .PP متدهای \fBCreateMachineWithNetwork()\fR و \fBRegisterMachineWithNetwork()\fR مشابه \fBCreateMachine()\fR و \fBRegisterMachine()\fR هستند، اما یک آرگومان اضافی دریافت می‌کنند: آرایه‌ای از نمایه‌های واسط شبکه که به ماشین مجازی یا کانتینر اشاره می‌کنند\&. نمایه‌های واسط باید به یک یا چند واسط شبکه در میزبان اشاره کنند که می‌توانند برای ارتباط با مهمان استفاده شوند\&. معمولاً نمایهٔ واسط ارسالی به سمت میزبان پیوند "veth" (در کانتینرها)، پیوند "tun"/"tap" (در ماشین‌های مجازی) یا سمت میزبان یک واسط پل (bridge) که دسترسی به واسط‌های کانتینر/ماشین مجازی را برقرار می‌سازد، اشاره دارد\&. تعیین این اطلاعات برای فعال‌سازی پشتیبانی از ارتباط IPv6 محلی-پیوند (link\-local IPv6) با ماشین‌ها مفید است؛ چرا که فیلد دامنهٔ sockaddr_in6 می‌تواند با ifindex مشخص‌شده مقداردهی اولیه شود\&. \fBnss-mymachines\fR(8) از این اطلاعات استفاده می‌کند\&. .PP متد \fBKillMachine()\fR یک سیگنال یونیکس به فرایندهای ماشین ارسال می‌کند\&. این متد به‌عنوان آرگومان‌های خود، یک نام ماشین (همان‌طور که در ابتدا به \fBCreateMachine()\fR ارسال شده یا توسط \fBListMachines()\fR بازگردانده شده)، یک شناسه که دقیقاً مشخص می‌کند سیگنال به چه چیزی ارسال شود (یا "leader" یا "all")، و یک عدد صحیح سیگنال عددی یونیکس را دریافت می‌کند\&. .PP متد \fBTerminateMachine()\fR یک ماشین مجازی را خاتمه داده و فرایندهای آن را متوقف می‌کند\&. این متد نام ماشین را به‌عنوان تنها آرگومان خود دریافت می‌نماید\&. .PP متد \fBGetMachineAddresses()\fR آدرس‌های IP یک کانتینر را بازیابی می‌کند\&. این متد آرایه‌ای از جفت‌های متشکل از مشخص‌کنندهٔ خانوادهٔ آدرس (\fBAF_INET\fR یا \fBAF_INET6\fR) و یک آرایهٔ بایتی حاوی آدرس‌ها را برمی‌گرداند\&. این متد فقط برای کانتینرهایی که از فضاهای نام شبکه (network namespacing) استفاده می‌کنند پشتیبانی می‌شود\&. .PP متد \fBGetMachineSSHInfo()\fR اطلاعات SSH یک ماشین را بازیابی می‌کند\&. این متد دو رشته برمی‌گرداند: نشانی SSH که می‌تواند برای تعیین مقصد اتصال به SSH استفاده شود، و مسیر کلید خصوصی SSH که برای موفقیت‌آمیز بودن اتصال لازم است\&. .PP متد \fBGetMachineOSRelease()\fR اطلاعات انتشار سیستم‌عامل (OS release) یک کانتینر را بازیابی می‌کند\&. این متد آرایه‌ای از جفت‌های کلید/مقدار خوانده‌شده از فایل \fBos-release\fR(5) درون کانتینر را برمی‌گرداند و برای شناسایی سیستم‌عامل استفاده‌شده در کانتینر مفید است\&. .PP متد \fBOpenMachinePTY()\fR یک شبه‌ترمینال (pseudo TTY) در کانتینر تخصیص می‌دهد و یک توصیف‌گر فایل و مسیر آن را برمی‌گرداند\&. این عمل معادل انتقال به درون کانتینر و فراخوانی \fBposix_openpt\fR(3) است\&. .PP متد \fBOpenMachineLogin()\fR یک شبه‌ترمینال در کانتینر تخصیص می‌دهد و اطمینان حاصل می‌کند که یک اعلان ورود getty مربوط به کانتینر در طرف دیگر در حال اجرا باشد\&. این متد توصیف‌گر فایل PTY و مسیر PTY را برمی‌گرداند\&. این کار برای دستیابی به یک pty همراه با اعلان ورود کانتینر مفید است\&. .PP متد \fBOpenMachineShell()\fR یک شبه‌ترمینال در کانتینر، به‌عنوان کاربر مشخص‌شده، تخصیص می‌دهد و فایل اجرایی موجود در مسیر مشخص‌شده را به همراه فهرستی از آرگومان‌ها (از argv[0] به بعد) و یک بلوک محیطی اجرا می‌کند\&. سپس توصیف‌گر فایل PTY و مسیر PTY را برمی‌گرداند\&. .PP متد \fBBindMountMachine()\fR یک فایل یا دایرکتوری را از میزبان به کانتینر متصل پیوندی (bind mount) می‌کند\&. آرگومان‌های آن شامل نام ماشین، دایرکتوری مبدا روی میزبان، دایرکتوری مقصد در کانتینر، و دو مقدار بولی است؛ یکی مشخص می‌کند که آیا اتصال باید فقط‌خواندنی باشد یا خیر، و دیگری مشخص می‌کند که آیا نقطهٔ اتصال مقصد در صورت وجود نداشتن ابتدا باید ایجاد شود یا خیر\&. .PP متد \fBCopyFromMachine()\fR فایل‌ها یا دایرکتوری‌ها را از کانتینر به درون میزبان کپی می‌کند\&. این متد نام کانتینر، یک دایرکتوری مبدا در کانتینر و یک دایرکتوری مقصد روی میزبان را به‌عنوان آرگومان دریافت می‌کند\&. متد \fBCopyToMachine()\fR برعکس عمل می‌کند و فایل‌ها را از یک دایرکتوری مبدا در میزبان به یک دایرکتوری مقصد درون کانتینر کپی می‌نماید\&. متدهای \fBCopyFromMachineWithFlags()\fR و \fBCopyToMachineWithFlags()\fR همین کار را انجام می‌دهند اما یک آرگومان فلگ اضافی نیز دریافت می‌کنند\&. .PP متد \fBOpenMachineRootDirectory()\fR توصیف‌گر فایل دایرکتوری ریشهٔ ماشین را برمی‌گرداند\&. .PP متد \fBGetMachineUIDShift()\fR مقدار جابه‌جایی UID ماشین را برمی‌گرداند\&. .PP متد \fBRemoveImage()\fR تصویر با نام مشخص‌شده را حذف می‌کند\&. .PP متد \fBRenameImage()\fR نام تصویر مشخص‌شده را تغییر می‌دهد\&. .PP متد \fBCloneImage()\fR تصویر مشخص‌شده را تحت یک نام جدید تکثیر (clone) می‌کند\&. همچنین یک آرگومان بولی دریافت می‌کند که مشخص می‌سازد آیا تصویر حاصل باید فقط‌خواندنی باشد یا خیر\&. .PP متد \fBMarkImageReadOnly()\fR وضعیت پرچم فقط‌خواندنی یک تصویر را تغییر می‌دهد (روشن/خاموش می‌کند)\&. .PP متد \fBGetImageHostname()\fR نام میزبان ذخیره‌شده در یک تصویر را بازیابی می‌کند\&. .PP متد \fBGetImageMachineID()\fR شناسهٔ machine ID ذخیره‌شده در یک تصویر را بازیابی می‌کند\&. .PP متد \fBGetImageMachineInfo()\fR اطلاعات machine-info ذخیره‌شده در یک تصویر را بازیابی می‌کند\&. .PP متد \fBGetImageOSRelease()\fR اطلاعات انتشار سیستم‌عامل (os-release) ذخیره‌شده در یک تصویر را بازیابی می‌کند\&. .PP متد \fBSetPoolLimit()\fR یک حد سهمیهٔ (quota limit) کلی روی استخر تصویرها تنظیم می‌کند\&. .PP متد \fBSetImageLimit()\fR یک حد سهمیه برای هر تصویر به‌طور جداگانه تنظیم می‌کند\&. .PP متد \fBCleanPool()\fR استخر تصویرها را پاکسازی می‌کند و تصویرهایی را برمی‌گرداند که پاک شده‌اند\&. .PP متدهای \fBMapFromMachineUser()\fR، \fBMapToMachineUser()\fR، \fBMapFromMachineGroup()\fR و \fBMapToMachineGroup()\fR می‌توانند برای نگاشت شناسه‌های UID/GID از فضای نام کاربر میزبان به فضای نام کاربر کانتینر یا برعکس استفاده شوند\&. .SS "سیگنال‌ها (Signals)" .PP سیگنال‌های \fBMachineNew()\fR و \fBMachineRemoved()\fR هر زمان که ماشین جدیدی ثبت یا حذف شود ارسال می‌گردند\&. این سیگنال‌ها نام ماشین و مسیر شیء مربوط به رابط org\&.freedesktop\&.machine1\&.Machine را حمل می‌کنند (پایین را ببینید)\&. .SS "ویژگی‌ها (Properties)" .PP ویژگی \fIPoolPath\fR مسیر سیستم فایلی را که تصاویر در آن نوشته می‌شوند مشخص می‌کند\&. .PP ویژگی \fIPoolUsage\fR میزان حجم مصرفی فعلی استخر تصویر را بر حسب بایت مشخص می‌کند\&. .PP ویژگی \fIPoolLimit\fR محدودیت حجم استخر تصویر را بر حسب بایت تعیین می‌کند\&. .SH "اشیاء MACHINE (MACHINE OBJECTS)" .sp .if n \{\ .RS 4 .\} .nf node /org/freedesktop/machine1/machine/rawhide { interface org\&.freedesktop\&.machine1\&.Machine { methods: Terminate(); Kill(in s whom, in i signal); GetAddresses(out a(iay) addresses); GetSSHInfo(out s ssh_address, out s ssh_private_key_path); GetOSRelease(out a{ss} fields); GetUIDShift(out u shift); OpenPTY(out h pty, out s pty_path); OpenLogin(out h pty, out s pty_path); OpenShell(in s user, in s path, in as args, in as environment, out h pty, out s pty_path); BindMount(in s source, in s destination, in b read_only, in b mkdir); CopyFrom(in s source, in s destination); CopyTo(in s source, in s destination); CopyFromWithFlags(in s source, in s destination, in t flags); CopyToWithFlags(in s source, in s destination, in t flags); OpenRootDirectory(out h fd); properties: @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s Name = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly ay Id = [\&.\&.\&.]; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly t Timestamp = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly t TimestampMonotonic = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s Service = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s Unit = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s Subgroup = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly u Leader = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly t LeaderPIDFDId = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly u Supervisor = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly t SupervisorPIDFDId = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s Class = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s RootDirectory = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly ai NetworkInterfaces = [\&.\&.\&.]; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly u VSockCID = \&.\&.\&.; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s SSHAddress = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly s SSHPrivateKeyPath = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("false") readonly s State = \*(Aq\&.\&.\&.\*(Aq; @org\&.freedesktop\&.DBus\&.Property\&.EmitsChangedSignal("const") readonly u UID = \&.\&.\&.; }; interface org\&.freedesktop\&.DBus\&.Peer { \&.\&.\&. }; interface org\&.freedesktop\&.DBus\&.Introspectable { \&.\&.\&. }; interface org\&.freedesktop\&.DBus\&.Properties { \&.\&.\&. }; }; .fi .if n \{\ .RE .\} .SS "متدها (Methods)" .PP متدهای \fBTerminate()\fR و \fBKill()\fR ماشین را خاتمه می‌دهند/متوقف می‌کنند\&. این متدها به ترتیب همان آرگومان‌های \fBTerminateMachine()\fR و \fBKillMachine()\fR روی رابط Manager را دریافت می‌کنند\&. .PP متدهای \fBGetAddresses()\fR، \fBGetSSHInfo()\fR و \fBGetOSRelease()\fR نشانی IP، اطلاعات اتصال SSH و اطلاعات انتشار سیستم‌عامل را از ماشین دریافت می‌کنند\&. این متدها به ترتیب همان آرگومان‌های \fBGetMachineAddresses()\fR، \fBGetMachineSSHInfo()\fR و \fBGetMachineOSRelease()\fR در رابط Manager را دریافت می‌کنند\&. .SS "ویژگی‌ها (Properties)" .PP ویژگی \fIName\fR نام ماشین است، همان‌طور که هنگام ثبت با متد \fBCreateMachine()\fR روی شیء Manager ارسال شده است\&. .PP ویژگی \fIId\fR شناسهٔ یکتای UUID ماشین است\&. .PP ویژگی‌های \fITimestamp\fR و \fITimestampMonotonic\fR مهرزمان‌های بی‌درنگ (realtime) و یکنواخت (monotonic) بر حسب میکروثانیه از مبدأ زمان (epoch) هستند که نشان می‌دهند ماشین مجازی چه زمانی ایجاد شده است\&. .PP ویژگی \fIService\fR شامل یک رشتهٔ کوتاه است که سرویس ثبت‌کننده را همان‌طور که هنگام ثبت ماشین ارسال شده، مشخص می‌کند\&. .PP ویژگی \fIUnit\fR نام واحد دامنه (scope) یا سرویس systemd برای ماشین است\&. .PP ویژگی \fILeader\fR شناسهٔ فرایند (PID) مربوط به فرایند راهبر ماشین است\&. (فرایند راهبر بالاترین سطح فرایند محمولهٔ ماشین است؛ یعنی در کانتینرها همان PID 1 درون کانتینر، و در ماشین‌های مجازی فرایند محصورکنندهٔ ماشین مجازی است\&. طول عمر این فرایند طول عمر ماشین را تعیین می‌کند\&.) .PP ویژگی \fILeaderPIDFDId\fR شناسهٔ اینود pidfd لینوکس مربوط به فرایند راهبر ماشین را کدگذاری می‌کند\&. .PP ویژگی \fISupervisor\fR شناسهٔ فرایند (PID) مربوط به فرایند ناظر ماشین است\&. (فرایند ناظر فرایندی است که ماشین را مدیریت می‌کند، در صورتی که فرایند جداگانه‌ای برای آن وجود داشته باشد\&. فرایند ناظر همیشه تعریف نمی‌شود و طول عمر ماشین را تعیین نمی‌کند\&.) .PP ویژگی \fISupervisorPIDFDId\fR شناسهٔ اینود pidfd لینوکس مربوط به فرایند ناظر ماشین را کدگذاری می‌کند\&. .PP ویژگی \fIClass\fR کلاس ماشین است و یکی از دو رشتهٔ "vm" (برای ماشین‌های مجازی واقعی مبتنی بر سخت‌افزار مجازی‌شده) یا "container" (برای مجازی‌سازی سبک در فضای کاربر که کرنل مشترکی با میزبان دارند) می‌باشد\&. .PP ویژگی \fIRootDirectory\fR دایرکتوری ریشهٔ کانتینر است، در صورتی که مشخص و قابل اعمال باشد، و در غیر این صورت رشته‌ای خالی است\&. .PP ویژگی \fINetworkInterfaces\fR شامل آرایه‌ای از نمایه‌های واسط شبکه است که به کانتینر، ماشین مجازی یا میزبان اشاره دارند\&. برای جزئیات دربارهٔ این اطلاعات، توضیحات متد \fBCreateMachineWithNetwork()\fR در بالا را مشاهده کنید\&. .PP ویژگی \fIVSockCID\fR شناسهٔ VSOCK CID ماشین مجازی است در صورتی که مشخص باشد، و در غیر این صورت \fBVMADDR_CID_ANY\fR خواهد بود\&. .PP ویژگی \fISSHAddress\fR نشانی ماشین مجازی در قالبی است که \fBssh\fR بتواند آن را درک کند (در صورتی که شناخته شده باشد)، و در غیر این صورت رشتهٔ خالی است\&. .PP ویژگی \fISSHPrivateKeyPath\fR مسیر کلید خصوصی SSH ماشین مجازی است در صورتی که شناخته شده باشد، و در غیر این صورت رشتهٔ خالی است\&. .PP ویژگی \fIState\fR وضعیت ماشین است و یکی از مقادیر "opening"، "running" یا "closing" می‌باشد\&. توجه داشته باشید که ماشین حالت جزئی از API در نظر گرفته نمی‌شود و ممکن است وضعیت‌ها بدون اینکه شکستن سازگاری API تلقی شود، حذف یا اضافه گردند\&. .PP ویژگی \fISubgroup\fR شامل مسیر زیرگروه کنترل (sub-cgroup) است که فرایندهای این ماشین در آن مستقر هستند، به صورت نسبی با گروه کنترل واحد مشخص‌شده\&. .PP ویژگی \fIUID\fR حاوی شناسهٔ عددی یونیکس (UID) کاربری است که ماشین را ثبت کرده است\&. .SH "مثال‌ها (EXAMPLES)" .PP \fBمثال\ \&۱.\ \&درون‌نگری org\&.freedesktop\&.machine1\&.Manager روی گذرگاه\fR .sp .if n \{\ .RS 4 .\} .nf $ gdbus introspect \-\-system \e \-\-dest org\&.freedesktop\&.machine1 \e \-\-object\-path /org/freedesktop/machine1 .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۲.\ \&درون‌نگری org\&.freedesktop\&.machine1\&.Machine روی گذرگاه\fR .sp .if n \{\ .RS 4 .\} .nf $ gdbus introspect \-\-system \e \-\-dest org\&.freedesktop\&.machine1 \e \-\-object\-path /org/freedesktop/machine1/machine/rawhide .fi .if n \{\ .RE .\} .SH "سازگاری نسخه (VERSION COMPATIBILITY)" .PP این رابط‌های D\-Bus از \m[blue]\fBدستورالعمل‌های معمول نسخه‌بندی رابط\fR\m[]\&\s-2\u[2]\d\s+2 پیروی می‌کنند\&. .SH "تاریخچه (HISTORY)" .SS "شیء Manager" .PP متدهای \fBCopyFromMachineWithFlags()\fR و \fBCopyToMachineWithFlags()\fR در نسخهٔ ۲۵۲ اضافه شدند\&. .PP متد \fBGetMachineSSHInfo()\fR در نسخهٔ ۲۵۶ اضافه شد\&. .SS "اشیاء Machine" .PP متدهای \fBCopyFromWithFlags()\fR و \fBCopyToWithFlags()\fR در نسخهٔ ۲۵۲ اضافه شدند\&. .PP متد \fBGetSSHInfo()\fR، ویژگی \fIVSockCID\fR، ویژگی \fISSHAddress\fR و ویژگی \fISSHPrivateKeyPath\fR در نسخهٔ ۲۵۶ اضافه شدند\&. .PP ویژگی‌های \fILeaderPIDFDId\fR، \fISupervisor\fR، \fISupervisorPIDFDId\fR، \fISubgroup\fR و \fIUID\fR در نسخهٔ ۲۵۸ اضافه شدند\&. .PP متدهای \fBCreateMachineEx()\fR و \fBRegisterMachineEx()\fR در نسخهٔ ۲۵۹ اضافه شدند\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsystemd-machined.service\fR(8), \fBmachinectl\fR(1) .SH "نکات (NOTES)" .IP " 1." 4 واسط‌های جدید گروه‌های کنترل (Control Group) .RS 4 \%https://systemd.io/CONTROL_GROUP_INTERFACE .RE .IP " 2." 4 دستورالعمل‌های معمول نسخه‌بندی رابط .RS 4 \%https://0pointer.de/blog/projects/versioning-dbus.html .RE