guestunmount(1) Virtualization Support guestunmount(1)

guestunmount - پیاده کردن یک سیستم‌فایل مانت‌شده توسط guestmount

guestunmount mountpoint
guestunmount --fd=<FD> mountpoint

ابزار guestunmount برنامه‌ای کمکی برای پاک‌سازی خودکار سیستم‌فایل‌های مانت‌شده است. guestmount(1) سیستم‌فایل‌ها را با استفاده از libguestfs سوار (مانت) می‌کند. این برنامه پس از اتمام کار یک برنامه یا اسکریپت با سیستم‌فایل، آن را پیاده (unmount) می‌کند.

ابزار guestunmount پوسته‌ای روی برنامه FUSE fusermount(1) است که باید در "PATH" فعلی موجود باشد.

دو روش برای استفاده از guestunmount وجود دارد. هنگامی که به این صورت فراخوانی شود:

guestunmount mountpoint

نقطه مانت "mountpoint" را بلافاصله پیاده می‌کند.

هنگامی که به این صورت فراخوانی شود:

guestunmount --fd=FD mountpoint

تا زمان بسته شدن لوله (pipe) با توصیف‌گر "FD" منتظر می‌ماند. این سازوکار می‌تواند برای پایش یک فرایند دیگر و پاک‌سازی نقطه مانت آن پس از خروج آن فرایند، مطابق توضیحات زیر مورد استفاده قرار گیرد.

شما می‌توانید صرفاً "guestunmount mountpoint" را از درون برنامه فراخوانی کنید، اما یک روش پیشرفته‌تر برای استفاده از guestunmount این است که آن را طوری تنظیم کنید تا برنامه شما را پایش کند؛ بدین ترتیب اگر برنامه به‌طور غیرمنتظره خارج شد، بتواند نقطه مانت را پاک‌سازی کند.

درون برنامه، یک لوله بسازید (برای مثال با فراخوانی pipe(2)). در نظر بگیرید که "FD" شماره توصیف‌گر فایل سمت خواندن لوله باشد (یعنی "pipefd[0]").

پس از سوار کردن سیستم‌فایل با guestmount(1) (بر روی "mountpoint")، عملیات fork را انجام داده و guestunmount را به این صورت اجرا کنید:

guestunmount --fd=FD mountpoint

سمت خواندن لوله را در فرایند والد ببندید.

اکنون، هنگامی که سمت نوشتن لوله (یعنی "pipefd[1]") به هر دلیلی، چه به صورت صریح و چه به دلیل خروج فرایند والد بسته شود، guestunmount متوجه شده و نقطه مانت را پیاده می‌کند.

اگر سیستم‌عامل شما پشتیبانی می‌کند، باید پرچم "FD_CLOEXEC" را روی سمت نوشتن لوله تنظیم کنید. این کار به این منظور است که سایر فرایندهای فرزند توصیف‌گر فایل را به ارث نبرند و آن را باز نگه ندارند.

برنامه guestunmount هرگز خود را به یک دیمن (daemon) تبدیل نمی‌کند.

از آن‌جا که bash راهکاری برای ایجاد یک لوله بدون نام ارائه نمی‌دهد، برای فراخوانی guestunmount در هنگام خروج، از trap به صورت زیر استفاده کنید:

trap "guestunmount mountpoint" EXIT INT QUIT TERM

توصیف‌گر فایل لوله را جهت پایش مشخص می‌کند و عملیات پاک‌سازی را تا زمان بسته شدن آن لوله به تعویق می‌اندازد.
نمایش یک راهنمای مختصر و خروج.
پیام‌های خطای fusermount را نمایش نمی‌دهد. وضعیت بازگشتی همچنان تنظیم می‌شود (بخش "وضعیت خروج (EXIT STATUS)" در ادامه را ببینید).
به طور پیش‌فرض، guestunmount عملیات fusermount را تا ۵ بار تکرار خواهد کرد (یعنی تا ۶ بار آن را اجرا می‌کند = ۱ تلاش اولیه + ۵ بار تلاش مجدد).

از --no-retry استفاده کنید تا guestunmount فقط یک‌بار fusermount را اجرا کند.

از --retry=N استفاده کنید تا guestunmount به جای ۵ بار، "N" بار تلاش مجدد انجام دهد.

ابزار guestunmount یک پس‌نشینی نمایی (exponential back-off) بین تلاش‌ها اعمال می‌کند؛ بدین صورت که پیش از هر تلاش مجدد، به ترتیب ۱ ثانیه، ۲ ثانیه، ۴ ثانیه و غیره منتظر می‌ماند.

نمایش نسخه برنامه و خروج.

"PATH"
برنامه fusermount(1) (ارائه‌شده توسط FUSE) باید در "PATH" فعلی در دسترس باشد.

این برنامه در صورت موفقیت مقدار 0 یا یکی از کدهای خطای زیر را برمی‌گرداند:

1
خطای برنامه؛ برای مثال، عدم امکان تخصیص حافظه یا ناتوانی در اجرای fusermount. برای اطلاعات بیشتر پیام خطای چاپ‌شده را ببینید.
2
نقطه مانت حتی پس از تلاش‌های مجدد پیاده نشد. برای مشاهده خطای بنیادین fusermount، پیام خطای چاپ‌شده را بررسی کنید.
3
نقطه مانت سوار (mount) نشده است.

guestmount(1), fusermount(1), pipe(2), "MOUNT LOCAL" در guestfs(3), http://libguestfs.org, http://fuse.sf.net.

Richard W.M. Jones ("rjones at redhat dot com")

Copyright (C) 2013 Red Hat Inc.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی دیگری، بازتوزیع کرده و/یا تغییر دهید.

این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

برای دریافت فهرست باگ‌های مربوط به libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

برای ارسال گزارش باگ جدید برای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

هنگام گزارش یک باگ، لطفاً موارد زیر را ارائه دهید:

  • نسخه libguestfs.
  • محل دریافت libguestfs (برای مثال کدام توزیع لینوکس، کامپایل‌شده از سورس و غیره).
  • شرح دقیق باگ و روشی برای بازتولید آن.
  • اجرای libguestfs-test-tool(1) و قرار دادن خروجی کامل و ویرایش‌نشده آن درون گزارش باگ.
2026-07-14 libguestfs-1.60.1