.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.52.0 (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 .\" ======================================================================== .\" .IX Title "guestunmount 1" .TH guestunmount 1 2024-01-05 libguestfs-1.52.0 "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 НАЗВА .IX Header "НАЗВА" guestunmount — демонтування змонтованої за допомогою guestmount файлової системи .SH "КОРОТКИЙ ОПИС" .IX Header "КОРОТКИЙ ОПИС" .Vb 1 \& guestunmount точка_монтування \& \& guestunmount \-\-fd=<дескрипто_файла> точка монтування .Ve .SH ОПИС .IX Header "ОПИС" guestunmount — програма для автоматичного вилучення змонтованих файлових систем. \fBguestmount\fR\|(1) монтує файлові системи за допомогою libguestfs. Ця програма демонтує файлову систему, коли програма або скрипт завершує роботу з нею. .PP guestunmount є обгорткою навколо програми FUSE \fBfusermount\fR\|(1), яка має зберігатися у одному з каталогів, вказаних за допомогою поточної змінної \f(CW\*(C`PATH\*(C'\fR. .PP Існує два способи використання guestunmount. Якщо програму викликано так: .PP .Vb 1 \& guestunmount точка_монтування .Ve .PP вона демонтує точку монтування \f(CW\*(C`точка_монтування\*(C'\fR негайно. .PP Якщо ж програму викликано так: .PP .Vb 1 \& guestunmount \-\-fd=FD точка_монтування .Ve .PP програма чекатиме, аж доки не буде закрито дескриптор файла \f(CW\*(C`FD\*(C'\fR каналу. Цим можна скористатися для спостереження за іншим процесом і вилучення точки монтування після завершення роботи процесу, як це описано нижче. .SS "З ПРОГРАМ" .IX Subsection "З ПРОГРАМ" Ви можете просто викликати \f(CW\*(C`guestunmount точка_монтування\*(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`точка_монтування\*(C'\fR) виконайте відгалуження (fork) і запустіть guestunmount ось так: .PP .Vb 1 \& guestunmount \-\-fd=FD точка_монтування .Ve .PP Закрийте бік читання у каналі обробки у батьківському процесі. .PP Тепер, коли з якоїсь причини буде закрито бік запису у каналі (тобто \f(CW\*(C`pipefd[1]\*(C'\fR), явно або у результаті завершення роботи батьківського процесу, guestunmount зауважить це і демонтує точку монтування. .PP Якщо у вашій операційній системі передбачено підтримку цього, вам слід встановити прапорець \f(CW\*(C`FD_CLOEXEC\*(C'\fR на боці запису у каналі. Таким чином ви забороните іншим дочірнім процесам успадковувати дескриптор файла і тримати його відкритим. .PP Guestunmount ніколи не перетворюється на фонову службу. .SS "ЗІ СКРИПТІВ ОБОЛОНКИ" .IX Subsection "ЗІ СКРИПТІВ ОБОЛОНКИ" Оскільки у bash не передбачено способу створення неіменованого каналу обробки, скористайтеся trap для виклику guestunmount при виході, ось так: .PP .Vb 1 \& trap "guestunmount точка_монтування" EXIT INT QUIT TERM .Ve .SH ПАРАМЕТРИ .IX Header "ПАРАМЕТРИ" .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. Стан повернення все одно буде встановлено (див. "СТАН ВИХОДУ" нижче). .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 аж до 5\ разів (тобто загалом буде виконано 6\ спроб = 1\ перша\ спроба + 5\ повторних\ спроб). .Sp Скористайтеся параметром \fI\-\-no\-retry\fR, щоб наказати guestunmount запускати fusermount лише один раз. .Sp Скористайтеся параметром \fI\-\-retry=N\fR, щоб наказати guestunmount виконувати \f(CW\*(C`N\*(C'\fR повторних спроб замість 5. .Sp guestunmount збільшує час між спробами експоненційно, очікуючи 1\ секунду, 2\ секунди, 4\ секунди тощо перед кожною повторною спробою. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD Показати дані щодо версії програми, потім вийти. .SH "ЗМІННІ СЕРЕДОВИЩА" .IX Header "ЗМІННІ СЕРЕДОВИЩА" .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 "СТАН ВИХОДУ" .IX Header "СТАН ВИХОДУ" Ця програма повертає значення 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" Точку монтування не змонтовано. .SH "ТАКОЖ ПЕРЕГЛЯНЬТЕ" .IX Header "ТАКОЖ ПЕРЕГЛЯНЬТЕ" \&\fBguestmount\fR\|(1), \fBfusermount\fR\|(1), \fBpipe\fR\|(2), "ЛОКАЛЬНЕ МОНТУВАННЯ" in \fBguestfs\fR\|(3), http://libguestfs.org/, http://fuse.sf.net/. .SH АВТОРИ .IX Header "АВТОРИ" Richard W.M. Jones (\f(CW\*(C`rjones at redhat dot com\*(C'\fR) .SH "АВТОРСЬКІ ПРАВА" .IX Header "АВТОРСЬКІ ПРАВА" © Red Hat Inc., 2013 .SH LICENSE .IX Header "LICENSE" .SH BUGS .IX Header "BUGS" To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools .PP To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP When reporting a bug, please supply: .IP \(bu 4 The version of libguestfs. .IP \(bu 4 Where you got libguestfs (eg. which Linux distro, compiled from source, etc) .IP \(bu 4 Describe the bug accurately and give a way to reproduce it. .IP \(bu 4 Run \fBlibguestfs\-test\-tool\fR\|(1) and paste the \fBcomplete, unedited\fR output into the bug report.