.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.60.1 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "guestunmount 1" .TH guestunmount 1 2026-07-14 libguestfs-1.60.1 "Virtualization Support" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" guestunmount \- پیاده کردن یک سیستم‌فایل مانت‌شده توسط guestmount .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" .Vb 1 \& guestunmount mountpoint \& \& guestunmount \-\-fd= mountpoint .Ve .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" ابزار guestunmount برنامه‌ای کمکی برای پاک‌سازی خودکار سیستم‌فایل‌های مانت‌شده است. \fBguestmount\fR\|(1) سیستم‌فایل‌ها را با استفاده از libguestfs سوار (مانت) می‌کند. این برنامه پس از اتمام کار یک برنامه یا اسکریپت با سیستم‌فایل، آن را پیاده (unmount) می‌کند. .PP ابزار guestunmount پوسته‌ای روی برنامه FUSE \fBfusermount\fR\|(1) است که باید در \f(CW\*(C`PATH\*(C'\fR فعلی موجود باشد. .PP دو روش برای استفاده از guestunmount وجود دارد. هنگامی که به این صورت فراخوانی شود: .PP .Vb 1 \& guestunmount mountpoint .Ve .PP نقطه مانت \f(CW\*(C`mountpoint\*(C'\fR را بلافاصله پیاده می‌کند. .PP هنگامی که به این صورت فراخوانی شود: .PP .Vb 1 \& guestunmount \-\-fd=FD mountpoint .Ve .PP تا زمان بسته شدن لوله (pipe) با توصیف‌گر \f(CW\*(C`FD\*(C'\fR منتظر می‌ماند. این سازوکار می‌تواند برای پایش یک فرایند دیگر و پاک‌سازی نقطه مانت آن پس از خروج آن فرایند، مطابق توضیحات زیر مورد استفاده قرار گیرد. .SS "از طریق برنامه‌ها (FROM PROGRAMS)" .IX Subsection "FROM PROGRAMS" شما می‌توانید صرفاً \f(CW\*(C`guestunmount mountpoint\*(C'\fR را از درون برنامه فراخوانی کنید، اما یک روش پیشرفته‌تر برای استفاده از guestunmount این است که آن را طوری تنظیم کنید تا برنامه شما را پایش کند؛ بدین ترتیب اگر برنامه به‌طور غیرمنتظره خارج شد، بتواند نقطه مانت را پاک‌سازی کند. .PP درون برنامه، یک لوله بسازید (برای مثال با فراخوانی \fBpipe\fR\|(2)). در نظر بگیرید که \f(CW\*(C`FD\*(C'\fR شماره توصیف‌گر فایل سمت خواندن لوله باشد (یعنی \f(CW\*(C`pipefd[0]\*(C'\fR). .PP پس از سوار کردن سیستم‌فایل با \fBguestmount\fR\|(1) (بر روی \&\f(CW\*(C`mountpoint\*(C'\fR)، عملیات fork را انجام داده و guestunmount را به این صورت اجرا کنید: .PP .Vb 1 \& guestunmount \-\-fd=FD mountpoint .Ve .PP سمت خواندن لوله را در فرایند والد ببندید. .PP اکنون، هنگامی که سمت نوشتن لوله (یعنی \f(CW\*(C`pipefd[1]\*(C'\fR) به هر دلیلی، چه به صورت صریح و چه به دلیل خروج فرایند والد بسته شود، guestunmount متوجه شده و نقطه مانت را پیاده می‌کند. .PP اگر سیستم‌عامل شما پشتیبانی می‌کند، باید پرچم \f(CW\*(C`FD_CLOEXEC\*(C'\fR را روی سمت نوشتن لوله تنظیم کنید. این کار به این منظور است که سایر فرایندهای فرزند توصیف‌گر فایل را به ارث نبرند و آن را باز نگه ندارند. .PP برنامه guestunmount هرگز خود را به یک دیمن (daemon) تبدیل نمی‌کند. .SS "از درون اسکریپت‌های شل (FROM SHELL SCRIPTS)" .IX Subsection "FROM SHELL SCRIPTS" از آن‌جا که bash راهکاری برای ایجاد یک لوله بدون نام ارائه نمی‌دهد، برای فراخوانی guestunmount در هنگام خروج، از trap به صورت زیر استفاده کنید: .PP .Vb 1 \& trap "guestunmount mountpoint" EXIT INT QUIT TERM .Ve .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-\-fd=FD\fR 4 .IX Item "--fd=FD" توصیف‌گر فایل لوله را جهت پایش مشخص می‌کند و عملیات پاک‌سازی را تا زمان بسته شدن آن لوله به تعویق می‌اندازد. .IP \fB\-\-help\fR 4 .IX Item "--help" نمایش یک راهنمای مختصر و خروج. .IP \fB\-q\fR 4 .IX Item "-q" .PD 0 .IP \fB\-\-quiet\fR 4 .IX Item "--quiet" .PD پیام‌های خطای fusermount را نمایش نمی‌دهد. وضعیت بازگشتی همچنان تنظیم می‌شود (بخش "وضعیت خروج (EXIT STATUS)" در ادامه را ببینید). .IP \fB\-\-no\-retry\fR 4 .IX Item "--no-retry" .PD 0 .IP \fB\-\-retry=N\fR 4 .IX Item "--retry=N" .PD به طور پیش‌فرض، guestunmount عملیات fusermount را تا ۵\ بار تکرار خواهد کرد (یعنی تا ۶\ بار آن را اجرا می‌کند = ۱\ تلاش اولیه + ۵\ بار تلاش مجدد). .Sp از \fI\-\-no\-retry\fR استفاده کنید تا guestunmount فقط یک‌بار fusermount را اجرا کند. .Sp از \fI\-\-retry=N\fR استفاده کنید تا guestunmount به جای ۵ بار، \f(CW\*(C`N\*(C'\fR بار تلاش مجدد انجام دهد. .Sp ابزار guestunmount یک پس‌نشینی نمایی (exponential back-off) بین تلاش‌ها اعمال می‌کند؛ بدین صورت که پیش از هر تلاش مجدد، به ترتیب ۱\ ثانیه، ۲\ ثانیه، ۴\ ثانیه و غیره منتظر می‌ماند. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD نمایش نسخه برنامه و خروج. .SH "محیط (ENVIRONMENT)" .IX Header "ENVIRONMENT VARIABLES" .ie n .IP """PATH""" 4 .el .IP \f(CWPATH\fR 4 .IX Item "PATH" برنامه \fBfusermount\fR\|(1) (ارائه‌شده توسط FUSE) باید در \f(CW\*(C`PATH\*(C'\fR فعلی در دسترس باشد. .SH "وضعیت خروج (EXIT STATUS)" .IX Header "EXIT STATUS" این برنامه در صورت موفقیت مقدار 0 یا یکی از کدهای خطای زیر را برمی‌گرداند: .ie n .IP 1 4 .el .IP \f(CW1\fR 4 .IX Item "1" خطای برنامه؛ برای مثال، عدم امکان تخصیص حافظه یا ناتوانی در اجرای fusermount. برای اطلاعات بیشتر پیام خطای چاپ‌شده را ببینید. .ie n .IP 2 4 .el .IP \f(CW2\fR 4 .IX Item "2" نقطه مانت حتی پس از تلاش‌های مجدد پیاده نشد. برای مشاهده خطای بنیادین fusermount، پیام خطای چاپ‌شده را بررسی کنید. .ie n .IP 3 4 .el .IP \f(CW3\fR 4 .IX Item "3" نقطه مانت سوار (mount) نشده است. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBguestmount\fR\|(1), \&\fBfusermount\fR\|(1), \&\fBpipe\fR\|(2), "MOUNT LOCAL" در \fBguestfs\fR\|(3), http://libguestfs.org, http://fuse.sf.net. .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Richard W.M. Jones (\f(CW\*(C`rjones at redhat dot com\*(C'\fR) .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (C) 2013 Red Hat Inc. .SH "مجوز (LICENSE)" .IX Header "LICENSE" این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده و/یا تغییر دهید. .PP این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .PP شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110\-1301 USA. .SH "گزارش باگ‌ها (BUGS)" .IX Header "BUGS" برای دریافت فهرست باگ‌های مربوط به libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools .PP برای ارسال گزارش باگ جدید برای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP هنگام گزارش یک باگ، لطفاً موارد زیر را ارائه دهید: .IP \(bu 4 نسخه libguestfs. .IP \(bu 4 محل دریافت libguestfs (برای مثال کدام توزیع لینوکس، کامپایل‌شده از سورس و غیره). .IP \(bu 4 شرح دقیق باگ و روشی برای بازتولید آن. .IP \(bu 4 اجرای \fBlibguestfs\-test\-tool\fR\|(1) و قرار دادن خروجی \fBکامل و ویرایش‌نشده\fR آن درون گزارش باگ.