From fc22b3d6507c6745911b9dfcc68f1e665ae13dbc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 21:43:11 +0200 Subject: Adding upstream version 4.22.0. Signed-off-by: Daniel Baumann --- po/ru/man2/pivot_root.2.po | 1230 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1230 insertions(+) create mode 100644 po/ru/man2/pivot_root.2.po (limited to 'po/ru/man2/pivot_root.2.po') diff --git a/po/ru/man2/pivot_root.2.po b/po/ru/man2/pivot_root.2.po new file mode 100644 index 00000000..8fbb39e8 --- /dev/null +++ b/po/ru/man2/pivot_root.2.po @@ -0,0 +1,1230 @@ +# Russian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Alexey, 2016. +# Azamat Hackimov , 2014-2017. +# kogamatranslator49 , 2015. +# Kogan, Darima , 2014. +# Max Is , 2016. +# Yuri Kozlov , 2011-2019. +# Иван Павлов , 2017. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n\n" +"POT-Creation-Date: 2024-03-01 17:03+0100\n" +"PO-Revision-Date: 2022-12-23 11:11+0100\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Lokalize 2.0\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "pivot_root" +msgstr "pivot_root" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "31 октября 2023 г." + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Linux man-pages 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "ИМЯ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "pivot_root - change the root filesystem" +msgid "pivot_root - change the root mount" +msgstr "pivot_root - изменяет корневую файловую систему" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "LIBRARY" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Standard C library (I, I<-lc>)" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "СИНТАКСИС" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"B<#include Esys/syscall.hE> /* Definition of B constants */\n" +"B<#include Eunistd.hE>\n" +msgstr "" +"B<#include Esys/syscall.hE> /* определения констант B */\n" +"B<#include Eunistd.hE>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BIB<, const char *>IB<);>\n" +msgstr "BIB<, const char *>IB<);>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I: glibc provides no wrapper for B(), necessitating the " +"use of B(2)." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "ОПИСАНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B() changes the root filesystem in the mount namespace of " +#| "the calling process. More precisely, it moves the root filesystem to the " +#| "directory I and makes I the new root filesystem. The " +#| "calling process must have the B capability in the user " +#| "namespace that owns the caller's mount namespace." +msgid "" +"B() changes the root mount in the mount namespace of the " +"calling process. More precisely, it moves the root mount to the directory " +"I and makes I the new root mount. The calling process " +"must have the B capability in the user namespace that owns " +"the caller's mount namespace." +msgstr "" +"Системный вызов B() изменяет корневую файловую систему в " +"пространстве имён монтирования вызывающего процесса. Точнее говоря, он " +"перемещает корневую файловую систему в каталог I и делает " +"I новой корневой файловой системой. Вызывающий процесс должен " +"иметь мандат B в пользовательском пространстве имён, которому " +"принадлежит пространство имён монтирования вызывающего." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The paragraph above is intentionally vague because at the time when " +#| "B() was first implemented, it was unclear whether its affect " +#| "on other process's root and current working directories\\(emand the " +#| "caller's current working directory\\(emmight change in the future. " +#| "However, the behavior has remained consistent since this system call was " +#| "first implemented: B() changes the root directory and the " +#| "current working directory of each process or thread in the same mount " +#| "namespace to I if they point to the old root directory. (See " +#| "also NOTES.) On the other hand, B() does not change the " +#| "caller's current working directory (unless it is on the old root " +#| "directory), and thus it should be followed by a B call." +msgid "" +"B() changes the root directory and the current working " +"directory of each process or thread in the same mount namespace to " +"I if they point to the old root directory. (See also NOTES.) On " +"the other hand, B() does not change the caller's current " +"working directory (unless it is on the old root directory), and thus it " +"should be followed by a B call." +msgstr "" +"Параграф выше намеренно написан абстрактно, так как на момент первой " +"реализации B() было неясно, изменится ли его влияние на другие " +"процессы корня и текущие рабочие каталоги — как и на текущий рабочий каталог " +"вызывающего — в будущем. Однако поведение не изменилось с момента первой " +"реализации системного вызова: B() изменяет корневой каталог и " +"текущий рабочий каталог каждого процесс или нити в одном пространстве имён " +"монтирования на I, если они указывают на старый корневой каталог " +"(смотрите ЗАМЕЧАНИЯ). С другой стороны, B() не изменяет текущий " +"рабочий каталог вызывающего (если это старый корневой каталог), и поэтому он " +"должен запускаться после вызова B." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following restrictions apply:" +msgstr "Накладываются следующие ограничения:" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "\\[bu]" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I and I must be directories." +msgstr "Аргументы I и I должны быть каталогами." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "I and I must be directories." +msgid "" +"I and I must not be on the same mount as the current root." +msgstr "Аргументы I и I должны быть каталогами." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "I must be at or underneath I; that is, adding a " +#| "nonnegative number of I to the string pointed to by I must " +#| "yield the same directory as I." +msgid "" +"I must be at or underneath I; that is, adding some " +"nonnegative number of \"I\" suffixes to the pathname pointed to by " +"I must yield the same directory as I." +msgstr "" +"Аргумент I должен быть равен или ниже I, т. е., при " +"добавлении неотрицательного количества I в строку, на которую указывает " +"I, должен получаться каталог, равный I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "I must be a mount point. (If it is not otherwise a mount " +#| "point, it suffices to bind mount I on top of itself.)" +msgid "" +"I must be a path to a mount point, but can't be I<\"/\">. A path " +"that is not already a mount point can be converted into one by bind mounting " +"the path onto itself." +msgstr "" +"Значение I должно быть точкой монтирования (если это не точка " +"монтирования, то достаточно привязать монтирование I поверх самой " +"себя)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The propagation type of the parent mount of I and the parent mount " +"of the current root directory must not be B; similarly, if " +"I is an existing mount point, its propagation type must not be " +"B. These restrictions ensure that B() never " +"propagates any changes to another mount namespace." +msgstr "" +"Тип распространения родительского монтирования I и родительского " +"монтирования текущего корневого каталога не должно быть равно B; " +"схожим образом, если I — существующая точка монтирования, то её тип " +"распространения не должен быть B. Эти ограничения гарантируют, " +"что B() никогда не распространит изменения в другие пространства " +"имён монтирования." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The current root directory must be a mount point." +msgstr "Текущий корневой каталог должен быть точкой монтирования." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RETURN VALUE" +msgstr "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "On success, zero is returned. On error, -1 is returned, and I is " +#| "set appropriately." +msgid "" +"On success, zero is returned. On error, -1 is returned, and I is set " +"to indicate the error." +msgstr "" +"При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а " +"I устанавливается в соответствующее значение." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "ОШИБКИ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B() may fail with any of the same errors as B(2). " +"Additionally, it may fail with the following errors:" +msgstr "" +"Вызов B() может завершиться любой из ошибок что и B(2). " +"Кроме это, могут возвращаться следующие ошибки:" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. Reconfirmed that the following error occurs on Linux 5.0 by +#. specifying 'new_root' as "/rootfs" and 'put_old' as +#. "/rootfs/oldrootfs", and *not* bind mounting "/rootfs" on top of +#. itself. Of course, this is an odd situation, since a later check +#. in the kernel code will in any case yield EINVAL if 'new_root' is +#. not a mount point. However, when the system call was first added, +#. 'new_root' was not required to be a mount point. So, this +#. error is nowadays probably just the result of crufty accumulation. +#. This error can also occur if we bind mount "/" on top of itself +#. and try to specify "/" as the 'new' (again, an odd situation). So, +#. the EBUSY check in the kernel does still seem necessary to prevent +#. that case. Furthermore, the "or put_old" piece is probably +#. redundant text (although the check is in the kernel), since, +#. in another check, 'put_old' is required to be under 'new_root'. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "I or I is on the current root filesystem. (This error " +#| "covers the pathological case where I is I<\"/\">.)" +msgid "" +"I or I is on the current root mount. (This error covers " +"the pathological case where I is I<\"/\">.)" +msgstr "" +"Аргумент I или I находится в текущей корневой файловой " +"системе (эта ошибка возникает при патологическом случае когда значение " +"I равно I<\"/\">)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I is not a mount point." +msgstr "Значение I не является точкой монтирования." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "I is not underneath I." +msgid "I is not at or underneath I." +msgstr "Аргумент I не находится в дереве каталогов I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The current root directory is not a mount point (because of an earlier " +"B(2))." +msgstr "" +"Текущий корневой каталог не является точкой монтирования (из-за " +"предшествующего B(2))." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The current root is on the rootfs (initial ramfs) filesystem; see NOTES." +msgid "The current root is on the rootfs (initial ramfs) mount; see NOTES." +msgstr "" +"Текущий корень расположен на файловой системе rootfs (начальная ramfs); " +"смотрите ЗАМЕЧАНИЯ." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Either the mount point at I, or the parent mount of that mount " +"point, has propagation type B." +msgstr "" +"Точка монтирования I и её родительское монтирование имеет тип " +"распространения B." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I is a mount point and has the propagation type B." +msgstr "" +"Значение I является точкой монтирования и имеет тип распространения " +"B." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I or I is not a directory." +msgstr "Аргумент I или I не является каталогом." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The calling process does not have the B capability." +msgstr "Вызывающий процесс не имеет мандата B." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "СТАНДАРТЫ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux." +msgstr "Linux." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "ИСТОРИЯ" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "util-linux 2.37.4" +msgid "Linux 2.3.41." +msgstr "util-linux 2.37.4" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "ЗАМЕЧАНИЯ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A command-line interface for this system call is provided by " +"B(8)." +msgstr "" +"Интерфейсом командной строки для этого системного вызова является программа " +"B(8)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B() allows the caller to switch to a new root filesystem " +#| "while at the same time placing the old root mount at a location under " +#| "I from where it can subsequently be unmounted. (The fact that " +#| "it moves all processes that have a root directory or current working " +#| "directory on the old root filesystem to the new root filesystem frees the " +#| "old root filesystem of users, allowing it to be unmounted more easily.)" +msgid "" +"B() allows the caller to switch to a new root filesystem while " +"at the same time placing the old root mount at a location under I " +"from where it can subsequently be unmounted. (The fact that it moves all " +"processes that have a root directory or current working directory on the old " +"root directory to the new root frees the old root directory of users, " +"allowing the old root mount to be unmounted more easily.)" +msgstr "" +"Программа B() позволяет вызывающему переключиться в новую " +"корневую файловую систему и одновременно помещает монтирование старого корня " +"ниже I, откуда он может быть в последствии отмонтирован " +"(фактически, она перемещает все процессы, у которых корневой каталог или " +"текущий рабочий каталог расположен в старой корневой файловой системе, в " +"новую корневую файловую систему, и освобождает старую корневую файловую " +"систему от пользователей, облегчая её размонтирование)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "A typical use of B() is during system startup, when the " +#| "system mounts a temporary root filesystem (e.g., an B), then " +#| "mounts the real root filesystem, and eventually turns the latter into the " +#| "current root of all relevant processes or threads. A modern use is to " +#| "set up a root filesystem during the creation of a container." +msgid "" +"One use of B() is during system startup, when the system mounts " +"a temporary root filesystem (e.g., an B(4)), then mounts the real " +"root filesystem, and eventually turns the latter into the root directory of " +"all relevant processes and threads. A modern use is to set up a root " +"filesystem during the creation of a container." +msgstr "" +"Обычно, B() используется при загрузке, когда система монтирует " +"временную корневую файловую систему (например, B), а затем монтирует " +"настоящую корневую файловую систему, делая, тем самым, её корневой для всех " +"последующих процессов или нитей. Теперь она ещё используется для настройки " +"корневой файловой системы при создании контейнера." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "The fact that B() modifies process root and current working " +#| "directories in the manner noted in DESCRIPTION is necessary in order to " +#| "prevent kernel threads from keeping the old root directory busy with " +#| "their root and current working directory, even if they never access the " +#| "filesystem in any way." +msgid "" +"The fact that B() modifies process root and current working " +"directories in the manner noted in DESCRIPTION is necessary in order to " +"prevent kernel threads from keeping the old root mount busy with their root " +"and current working directories, even if they never access the filesystem in " +"any way." +msgstr "" +"Действие B() по изменению текущего рабочего каталога и корня " +"процесса, раскрытое в ОПИСАНИИ, необходимо для того, чтобы не дать нитям " +"ядра оставить занятым старый корневой каталог в качестве своего корня и " +"текущего рабочего каталога даже, если они никогда не обращаются к файловой " +"системе." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The rootfs (initial ramfs) cannot be B()ed. The recommended " +"method of changing the root filesystem in this case is to delete everything " +"in rootfs, overmount rootfs with the new root, attach I/I/" +"I to the new I, and exec the new B(1). Helper " +"programs for this process exist; see B(8)." +msgstr "" +"Для rootfs (начальная ramfs) нельзя вызвать B(). Рекомендуемым " +"методом изменения корневой файловой системы в этом случае является удаление " +"всего в rootfs, перемонтирование в rootfs нового корня, присоединение " +"I/I/I к новой I и запуск нового " +"B(1). Для этого существуют вспомогательные программы; смотрите " +"B(8)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "pivot_root(\\[dq].\\[dq], \\[dq].\\[dq])" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I and I may be the same directory. In particular, the " +"following sequence allows a pivot-root operation without needing to create " +"and remove a temporary directory:" +msgstr "" +"Значения I и I могут быть одним каталогом. В частности, " +"разрешена следующая последовательность операции pivot-root без необходимости " +"создания и удаления временного каталога:" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"chdir(new_root);\n" +"pivot_root(\".\", \".\");\n" +"umount2(\".\", MNT_DETACH);\n" +msgstr "" +"chdir(new_root);\n" +"pivot_root(\".\", \".\");\n" +"umount2(\".\", MNT_DETACH);\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "This sequence succeeds because the B() call stacks the old " +#| "root mount point (I) on top of the new root mount point at I. At that point, the calling process's root directory and current " +#| "working directory refer to the new root mount point (I). " +#| "During the subsequent B() call, resolution of I<\".\"> starts " +#| "with I and then moves up the list of mounts stacked at I, " +#| "with the result that I is unmounted." +msgid "" +"This sequence succeeds because the B() call stacks the old root " +"mount point on top of the new root mount point at I. At that point, the " +"calling process's root directory and current working directory refer to the " +"new root mount point (I). During the subsequent B() " +"call, resolution of I<\".\"> starts with I and then moves up the " +"list of mounts stacked at I, with the result that old root mount point is " +"unmounted." +msgstr "" +"Эта последовательность выполняется успешно, так как вызов B() " +"укладывает точку монтирования старого корня (I) сверху точки " +"монтирования нового корня в I. В этот момент корневой каталог и текущий " +"рабочий каталог вызывающего процесса указывают на точку монтирования нового " +"корня (I). При последующем вызове B() определение I<\".\"> " +"начинается с I и затем перемещается вверх по списку уложенных " +"монтирований в I, что в конце заканчивается размонтированием I." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Historical notes" +msgstr "Исторические замечания" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For many years, this manual page carried the following text:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy +#| msgid "" +#| "B() may or may not change the current root and the current " +#| "working directory of any processes or threads that use the old root " +#| "directory and which are in the same mount namespace as the caller of " +#| "B(). The caller of B() should ensure that " +#| "processes with root or current working directory at the old root operate " +#| "correctly in either case. An easy way to ensure this is to change their " +#| "root and current working directory to I before invoking " +#| "B(). Note also that B() may or may not affect " +#| "the calling process's current working directory. It is therefore " +#| "recommended to call B immediately after B()." +msgid "" +"B() may or may not change the current root and the current " +"working directory of any processes or threads which use the old root " +"directory. The caller of B() must ensure that processes with " +"root or current working directory at the old root operate correctly in " +"either case. An easy way to ensure this is to change their root and current " +"working directory to I before invoking B()." +msgstr "" +"Системный вызов B() может изменить или может не изменить текущий " +"корень и текущий рабочий каталог всех процессов или нитей, которые " +"используют старый корневой каталог и которые находятся в том же пространстве " +"имён монтирования что и вызывающий B(). В любом случае, " +"вызывающий B() должен проверить, что процессы с корневым или " +"текущим рабочим каталогом старого корня работают правильно. Простым способом " +"проверки является смена их корня и текущего рабочего каталога на " +"I до вызова B(). Заметим, что B() может " +"повлиять или может не повлиять на текущий рабочий каталог вызывающего " +"процесса. Поэтому рекомендуется вызвать B сразу после " +"B()." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This text, written before the system call implementation was even finalized " +"in the kernel, was probably intended to warn users at that time that the " +"implementation might change before final release. However, the behavior " +"stated in DESCRIPTION has remained consistent since this system call was " +"first implemented and will not change now." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "ПРИМЕРЫ" + +#. FIXME +#. Would it be better, because simpler, to use unshare(2) +#. rather than clone(2) in the example below? +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The program below demonstrates the use of B() inside a mount " +"namespace that is created using B(2). After pivoting to the root " +"directory named in the program's first command-line argument, the child " +"created by B(2) then executes the program named in the remaining " +"command-line arguments." +msgstr "" +"Представленная ниже программа демонстрирует использование B() " +"внутри пространства монтирования, которое создаётся с помощью B(2). " +"После перехода (pivoting) в корневой каталог с именем из первого параметра " +"командной строки, потомок, созданный B(2), выполняет программу с " +"именем из оставшихся параметров командной строки." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"We demonstrate the program by creating a directory that will serve as the " +"new root filesystem and placing a copy of the (statically linked) " +"B(1) executable in that directory." +msgstr "" +"Для работы программы создадим каталог, который будет служить новой корневой " +"файловой системой, и поместим копию исполняемого файла B(1) " +"(скомпонованного статически) в этот каталог." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, fuzzy, no-wrap +#| msgid "" +#| "$ B\n" +#| "$ B # Show inode number of new root directory\n" +#| "319459 /tmp/rootfs\n" +#| "$ B\n" +#| "$ B\n" +#| "bbsh$ B\n" +#| "bbsh$ B\n" +#| "bbsh$ B\n" +#| "bbsh$ B\n" +#| "bbsh$ B\n" +#| "busybox echo ln ls\n" +#| "bbsh$ B # Compare with inode number above\n" +#| "319459 /\n" +#| "bbsh$ B\n" +#| "hello world\n" +msgid "" +"$ B\n" +"$ B # Show inode number of new root directory\n" +"319459 /tmp/rootfs\n" +"$ B\n" +"$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"busybox echo ln ls\n" +"bbsh$ B # Compare with inode number above\n" +"319459 /\n" +"bbsh$ B\n" +"hello world\n" +msgstr "" +"$ B\n" +"$ B # выведем номер иноды нового корневого каталога\n" +"319459 /tmp/rootfs\n" +"$ B\n" +"$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"bbsh$ B\n" +"busybox echo ln ls\n" +"bbsh$ B # сравните с номером иноды выше\n" +"319459 /\n" +"bbsh$ B\n" +"hello world\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Program source" +msgstr "Исходный код программы" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"/* pivot_root_demo.c */\n" +"\\&\n" +"#define _GNU_SOURCE\n" +"#include Eerr.hE\n" +"#include Elimits.hE\n" +"#include Esched.hE\n" +"#include Esignal.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Esys/mman.hE\n" +"#include Esys/mount.hE\n" +"#include Esys/stat.hE\n" +"#include Esys/syscall.hE\n" +"#include Esys/wait.hE\n" +"#include Eunistd.hE\n" +"\\&\n" +"static int\n" +"pivot_root(const char *new_root, const char *put_old)\n" +"{\n" +" return syscall(SYS_pivot_root, new_root, put_old);\n" +"}\n" +"\\&\n" +"#define STACK_SIZE (1024 * 1024)\n" +"\\&\n" +"static int /* Startup function for cloned child */\n" +"child(void *arg)\n" +"{\n" +" char path[PATH_MAX];\n" +" char **args = arg;\n" +" char *new_root = args[0];\n" +" const char *put_old = \"/oldrootfs\";\n" +"\\&\n" +" /* Ensure that \\[aq]new_root\\[aq] and its parent mount don\\[aq]t have\n" +" shared propagation (which would cause pivot_root() to\n" +" return an error), and prevent propagation of mount\n" +" events to the initial mount namespace. */\n" +"\\&\n" +" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n" +"\\&\n" +" /* Ensure that \\[aq]new_root\\[aq] is a mount point. */\n" +"\\&\n" +" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_BIND\");\n" +"\\&\n" +" /* Create directory to which old root will be pivoted. */\n" +"\\&\n" +" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n" +" if (mkdir(path, 0777) == -1)\n" +" err(EXIT_FAILURE, \"mkdir\");\n" +"\\&\n" +" /* And pivot the root filesystem. */\n" +"\\&\n" +" if (pivot_root(new_root, path) == -1)\n" +" err(EXIT_FAILURE, \"pivot_root\");\n" +"\\&\n" +" /* Switch the current working directory to \"/\". */\n" +"\\&\n" +" if (chdir(\"/\") == -1)\n" +" err(EXIT_FAILURE, \"chdir\");\n" +"\\&\n" +" /* Unmount old root and remove mount point. */\n" +"\\&\n" +" if (umount2(put_old, MNT_DETACH) == -1)\n" +" perror(\"umount2\");\n" +" if (rmdir(put_old) == -1)\n" +" perror(\"rmdir\");\n" +"\\&\n" +" /* Execute the command specified in argv[1]... */\n" +"\\&\n" +" execv(args[1], &args[1]);\n" +" err(EXIT_FAILURE, \"execv\");\n" +"}\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" char *stack;\n" +"\\&\n" +" /* Create a child process in a new mount namespace. */\n" +"\\&\n" +" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n" +" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n" +" if (stack == MAP_FAILED)\n" +" err(EXIT_FAILURE, \"mmap\");\n" +"\\&\n" +" if (clone(child, stack + STACK_SIZE,\n" +" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n" +" err(EXIT_FAILURE, \"clone\");\n" +"\\&\n" +" /* Parent falls through to here; wait for child. */\n" +"\\&\n" +" if (wait(NULL) == -1)\n" +" err(EXIT_FAILURE, \"wait\");\n" +"\\&\n" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. SRC END +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "СМ. ТАКЖЕ" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B(2), B(2), B(2), B(2), B(4), " +"B(7), B(8), B(8)" +msgstr "" +"B(2), B(2), B(2), B(2), B(4), " +"B(7), B(8), B(8)" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "5 февраля 2023 г." + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Linux man-pages 6.03" + +#. type: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "ВЕРСИИ" + +#. type: Plain text +#: debian-bookworm +msgid "B() was introduced in Linux 2.3.41." +msgstr "Вызов B() появился в Linux 2.3.41." + +#. type: Plain text +#: debian-bookworm +msgid "B() is Linux-specific and hence is not portable." +msgstr "" +"Вызов B() есть только в Linux и поэтому его использование не " +"переносимо." + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "/* pivot_root_demo.c */\n" +msgstr "/* pivot_root_demo.c */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include Eerr.hE\n" +"#include Elimits.hE\n" +"#include Esched.hE\n" +"#include Esignal.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Esys/mman.hE\n" +"#include Esys/mount.hE\n" +"#include Esys/stat.hE\n" +"#include Esys/syscall.hE\n" +"#include Esys/wait.hE\n" +"#include Eunistd.hE\n" +msgstr "" +"#define _GNU_SOURCE\n" +"#include Eerr.hE\n" +"#include Elimits.hE\n" +"#include Esched.hE\n" +"#include Esignal.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Esys/mman.hE\n" +"#include Esys/mount.hE\n" +"#include Esys/stat.hE\n" +"#include Esys/syscall.hE\n" +"#include Esys/wait.hE\n" +"#include Eunistd.hE\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"static int\n" +"pivot_root(const char *new_root, const char *put_old)\n" +"{\n" +" return syscall(SYS_pivot_root, new_root, put_old);\n" +"}\n" +msgstr "" +"static int\n" +"pivot_root(const char *new_root, const char *put_old)\n" +"{\n" +" return syscall(SYS_pivot_root, new_root, put_old);\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "#define STACK_SIZE (1024 * 1024)\n" +msgstr "#define STACK_SIZE (1024 * 1024)\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"static int /* Startup function for cloned child */\n" +"child(void *arg)\n" +"{\n" +" char path[PATH_MAX];\n" +" char **args = arg;\n" +" char *new_root = args[0];\n" +" const char *put_old = \"/oldrootfs\";\n" +msgstr "" +"static int /* начальная функция клонированного потомка */\n" +"child(void *arg)\n" +"{\n" +" char path[PATH_MAX];\n" +" char **args = arg;\n" +" char *new_root = args[0];\n" +" const char *put_old = \"/oldrootfs\";\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid "" +#| " /* Ensure that \\(aqnew_root\\(aq and its parent mount don\\(aqt have\n" +#| " shared propagation (which would cause pivot_root() to\n" +#| " return an error), and prevent propagation of mount\n" +#| " events to the initial mount namespace. */\n" +msgid "" +" /* Ensure that \\[aq]new_root\\[aq] and its parent mount don\\[aq]t have\n" +" shared propagation (which would cause pivot_root() to\n" +" return an error), and prevent propagation of mount\n" +" events to the initial mount namespace. */\n" +msgstr "" +" /* Проверим, что \\(aqnew_root\\(aq и его родительское монтирование \n" +" не имеют общего распространения (из-за чего pivot_root() вернул бы\n" +" ошибку), и отключим распространение событий монтирования в\n" +" первоначальное пространство имён монтирования. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n" +msgstr "" +" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, fuzzy, no-wrap +#| msgid " /* Ensure that \\(aqnew_root\\(aq is a mount point. */\n" +msgid " /* Ensure that \\[aq]new_root\\[aq] is a mount point. */\n" +msgstr " /* Проверим, что \\(aqnew_root\\(aq является точкой монтирования. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_BIND\");\n" +msgstr "" +" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n" +" err(EXIT_FAILURE, \"mount-MS_BIND\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Create directory to which old root will be pivoted. */\n" +msgstr " /* Создадим каталог, в котором перейдёт старый корень. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n" +" if (mkdir(path, 0777) == -1)\n" +" err(EXIT_FAILURE, \"mkdir\");\n" +msgstr "" +" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n" +" if (mkdir(path, 0777) == -1)\n" +" err(EXIT_FAILURE, \"mkdir\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* And pivot the root filesystem. */\n" +msgstr " /* и переведём корневую файловую систему. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (pivot_root(new_root, path) == -1)\n" +" err(EXIT_FAILURE, \"pivot_root\");\n" +msgstr "" +" if (pivot_root(new_root, path) == -1)\n" +" err(EXIT_FAILURE, \"pivot_root\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Switch the current working directory to \"/\". */\n" +msgstr " /* сменим текущий рабочий каталог на «/». */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (chdir(\"/\") == -1)\n" +" err(EXIT_FAILURE, \"chdir\");\n" +msgstr "" +" if (chdir(\"/\") == -1)\n" +" err(EXIT_FAILURE, \"chdir\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Unmount old root and remove mount point. */\n" +msgstr " /* размонтируем старый корень и удалим точку монтирования. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (umount2(put_old, MNT_DETACH) == -1)\n" +" perror(\"umount2\");\n" +" if (rmdir(put_old) == -1)\n" +" perror(\"rmdir\");\n" +msgstr "" +" if (umount2(put_old, MNT_DETACH) == -1)\n" +" perror(\"umount2\");\n" +" if (rmdir(put_old) == -1)\n" +" perror(\"rmdir\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Execute the command specified in argv[1]... */\n" +msgstr " /* запустим команду, указанную в argv[1]... */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" execv(args[1], &args[1]);\n" +" err(EXIT_FAILURE, \"execv\");\n" +"}\n" +msgstr "" +" execv(args[1], &args[1]);\n" +" err(EXIT_FAILURE, \"execv\");\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" char *stack;\n" +msgstr "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" char *stack;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Create a child process in a new mount namespace. */\n" +msgstr " /* создадим дочерний процесс в новом пространстве имён монтирования. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n" +" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n" +" if (stack == MAP_FAILED)\n" +" err(EXIT_FAILURE, \"mmap\");\n" +msgstr "" +" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n" +" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n" +" if (stack == MAP_FAILED)\n" +" err(EXIT_FAILURE, \"mmap\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (clone(child, stack + STACK_SIZE,\n" +" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n" +" err(EXIT_FAILURE, \"clone\");\n" +msgstr "" +" if (clone(child, stack + STACK_SIZE,\n" +" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n" +" err(EXIT_FAILURE, \"clone\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Parent falls through to here; wait for child. */\n" +msgstr " /* предок попадает сюда; ждём потомка. */\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (wait(NULL) == -1)\n" +" err(EXIT_FAILURE, \"wait\");\n" +msgstr "" +" if (wait(NULL) == -1)\n" +" err(EXIT_FAILURE, \"wait\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" +" exit(EXIT_SUCCESS);\n" +"}\n" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-05-03" +msgstr "3 мая 2023 г." + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Linux man-pages 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "30 марта 2023 г." + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Linux man-pages 6.04" -- cgit v1.2.3