diff options
Diffstat (limited to '')
-rw-r--r-- | templates/man2/clone.2.pot | 3141 |
1 files changed, 3141 insertions, 0 deletions
diff --git a/templates/man2/clone.2.pot b/templates/man2/clone.2.pot new file mode 100644 index 00000000..b532b694 --- /dev/null +++ b/templates/man2/clone.2.pot @@ -0,0 +1,3141 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-03-01 16:54+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "clone" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-11-01" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "" + +#. 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 +msgid "clone, __clone2, clone3 - create a child process" +msgstr "" + +#. 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<libc>, 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 "/* Prototype for the glibc wrapper function */\n" +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<#define _GNU_SOURCE>\n" +"B<#include E<lt>sched.hE<gt>>\n" +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<int clone(int (*>I<fn>B<)(void *_Nullable), void *>I<stack>B<, int >I<flags>B<,>\n" +"B< void *_Nullable >I<arg>B<, ...>I< >/*B< pid_t *_Nullable >I<parent_tid>B<,>\n" +"B< void *_Nullable >I<tls>B<,>\n" +"B< pid_t *_Nullable >I<child_tid>B< >*/B< );>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "/* For the prototype of the raw clone() system call, see NOTES */\n" +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 E<lt>linux/sched.hE<gt>> /* Definition of B<struct clone_args> */\n" +"B<#include E<lt>sched.hE<gt>> /* Definition of B<CLONE_*> constants */\n" +"B<#include E<lt>sys/syscall.hE<gt>> /* Definition of B<SYS_*> constants */\n" +"B<#include E<lt>unistd.hE<gt>>\n" +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<long syscall(SYS_clone3, struct clone_args *>I<cl_args>B<, size_t >I<size>B<);>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<Note>: glibc provides no wrapper for B<clone3>(), necessitating the use of " +"B<syscall>(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 +msgid "" +"These system calls create a new (\"child\") process, in a manner similar to " +"B<fork>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By contrast with B<fork>(2), these system calls provide more precise control " +"over what pieces of execution context are shared between the calling process " +"and the child process. For example, using these system calls, the caller " +"can control whether or not the two processes share the virtual address " +"space, the table of file descriptors, and the table of signal handlers. " +"These system calls also allow the new child process to be placed in separate " +"B<namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that in this manual page, \"calling process\" normally corresponds to " +"\"parent process\". But see the descriptions of B<CLONE_PARENT> and " +"B<CLONE_THREAD> below." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "This page describes the following interfaces:" +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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The glibc B<clone>() wrapper function and the underlying system call on " +"which it is based. The main text describes the wrapper function; the " +"differences for the raw system call are described toward the end of this " +"page." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The newer B<clone3>() system call." +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"In the remainder of this page, the terminology \"the clone call\" is used " +"when noting details that apply to all of these interfaces." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The clone() wrapper function" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the child process is created with the B<clone>() wrapper function, it " +"commences execution by calling the function pointed to by the argument " +"I<fn>. (This differs from B<fork>(2), where execution continues in the " +"child from the point of the B<fork>(2) call.) The I<arg> argument is " +"passed as the argument of the function I<fn>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the I<fn>(I<arg>) function returns, the child process terminates. The " +"integer returned by I<fn> is the exit status for the child process. The " +"child process may also terminate explicitly by calling B<exit>(2) or after " +"receiving a fatal signal." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<stack> argument specifies the location of the stack used by the child " +"process. Since the child and calling process may share memory, it is not " +"possible for the child process to execute in the same stack as the calling " +"process. The calling process must therefore set up memory space for the " +"child stack and pass a pointer to this space to B<clone>(). Stacks grow " +"downward on all processors that run Linux (except the HP PA processors), so " +"I<stack> usually points to the topmost address of the memory space set up " +"for the child stack. Note that B<clone>() does not provide a means whereby " +"the caller can inform the kernel of the size of the stack area." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The remaining arguments to B<clone>() are discussed below." +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "clone3()" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<clone3>() system call provides a superset of the functionality of the " +"older B<clone>() interface. It also provides a number of API improvements, " +"including: space for additional flags bits; cleaner separation in the use of " +"various arguments; and the ability to specify the size of the child's stack " +"area." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As with B<fork>(2), B<clone3>() returns in both the parent and the child. " +"It returns 0 in the child process and returns the PID of the child in the " +"parent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<cl_args> argument of B<clone3>() is a structure of the following form:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"struct clone_args {\n" +" u64 flags; /* Flags bit mask */\n" +" u64 pidfd; /* Where to store PID file descriptor\n" +" (I<int *>) */\n" +" u64 child_tid; /* Where to store child TID,\n" +" in child\\[aq]s memory (I<pid_t *>) */\n" +" u64 parent_tid; /* Where to store child TID,\n" +" in parent\\[aq]s memory (I<pid_t *>) */\n" +" u64 exit_signal; /* Signal to deliver to parent on\n" +" child termination */\n" +" u64 stack; /* Pointer to lowest byte of stack */\n" +" u64 stack_size; /* Size of stack */\n" +" u64 tls; /* Location of new TLS */\n" +" u64 set_tid; /* Pointer to a I<pid_t> array\n" +" (since Linux 5.5) */\n" +" u64 set_tid_size; /* Number of elements in I<set_tid>\n" +" (since Linux 5.5) */\n" +" u64 cgroup; /* File descriptor for target cgroup\n" +" of child (since Linux 5.7) */\n" +"};\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<size> argument that is supplied to B<clone3>() should be initialized " +"to the size of this structure. (The existence of the I<size> argument " +"permits future extensions to the I<clone_args> structure.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The stack for the child process is specified via I<cl_args.stack>, which " +"points to the lowest byte of the stack area, and I<cl_args.stack_size>, " +"which specifies the size of the stack in bytes. In the case where the " +"B<CLONE_VM> flag (see below) is specified, a stack must be explicitly " +"allocated and specified. Otherwise, these two fields can be specified as " +"NULL and 0, which causes the child to use the same stack area as the parent " +"(in the child's own virtual address space)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The remaining fields in the I<cl_args> argument are discussed below." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Equivalence between clone() and clone3() arguments" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Unlike the older B<clone>() interface, where arguments are passed " +"individually, in the newer B<clone3>() interface the arguments are packaged " +"into the I<clone_args> structure shown above. This structure allows for a " +"superset of the information passed via the B<clone>() arguments." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following table shows the equivalence between the arguments of " +"B<clone>() and the fields in the I<clone_args> argument supplied to " +"B<clone3>():" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "clone()" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Notes" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cl_args> field" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "flags & \\[ti]0xff" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "flags" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "For most flags; details below" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "parent_tid" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "pidfd" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See CLONE_PIDFD" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "child_tid" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See CLONE_CHILD_SETTID" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See CLONE_PARENT_SETTID" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "flags & 0xff" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "exit_signal" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "stack" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<--->" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "stack_size" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "tls" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See CLONE_SETTLS" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "set_tid" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See below for details" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "set_tid_size" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "cgroup" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "See CLONE_INTO_CGROUP" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The child termination signal" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the child process terminates, a signal may be sent to the parent. The " +"termination signal is specified in the low byte of I<flags> (B<clone>()) or " +"in I<cl_args.exit_signal> (B<clone3>()). If this signal is specified as " +"anything other than B<SIGCHLD>, then the parent process must specify the " +"B<__WALL> or B<__WCLONE> options when waiting for the child with " +"B<wait>(2). If no signal (i.e., zero) is specified, then the parent process " +"is not signaled when the child terminates." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The set_tid array" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, the kernel chooses the next sequential PID for the new process " +"in each of the PID namespaces where it is present. When creating a process " +"with B<clone3>(), the I<set_tid> array (available since Linux 5.5) can be " +"used to select specific PIDs for the process in some or all of the PID " +"namespaces where it is present. If the PID of the newly created process " +"should be set only for the current PID namespace or in the newly created PID " +"namespace (if I<flags> contains B<CLONE_NEWPID>) then the first element in " +"the I<set_tid> array has to be the desired PID and I<set_tid_size> needs to " +"be 1." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the PID of the newly created process should have a certain value in " +"multiple PID namespaces, then the I<set_tid> array can have multiple " +"entries. The first entry defines the PID in the most deeply nested PID " +"namespace and each of the following entries contains the PID in the " +"corresponding ancestor PID namespace. The number of PID namespaces in which " +"a PID should be set is defined by I<set_tid_size> which cannot be larger " +"than the number of currently nested PID namespaces." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To create a process with the following PIDs in a PID namespace hierarchy:" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "PID NS level" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Requested PID" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "0" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "31496" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Outermost PID namespace" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "1" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "42" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "2" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "7" +msgstr "" + +#. type: tbl table +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Innermost PID namespace" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the array to:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"set_tid[0] = 7;\n" +"set_tid[1] = 42;\n" +"set_tid[2] = 31496;\n" +"set_tid_size = 3;\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If only the PIDs in the two innermost PID namespaces need to be specified, " +"set the array to:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"set_tid[0] = 7;\n" +"set_tid[1] = 42;\n" +"set_tid_size = 2;\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The PID in the PID namespaces outside the two innermost PID namespaces is " +"selected the same way as any other PID is selected." +msgstr "" + +#. commit 124ea650d3072b005457faed69909221c2905a1f +#. commit 1caef81da05a84a40dbf02110e967ce6d1135ff6 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<set_tid> feature requires B<CAP_SYS_ADMIN> or (since Linux 5.9) " +"B<CAP_CHECKPOINT_RESTORE> in all owning user namespaces of the target PID " +"namespaces." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Callers may only choose a PID greater than 1 in a given PID namespace if an " +"B<init> process (i.e., a process with PID 1) already exists in that " +"namespace. Otherwise the PID entry for this PID namespace must be 1." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The flags mask" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both B<clone>() and B<clone3>() allow a flags bit mask that modifies their " +"behavior and allows the caller to specify what is shared between the calling " +"process and the child process. This bit mask\\[em]the I<flags> argument of " +"B<clone>() or the I<cl_args.flags> field passed to B<clone3>()\\[em]is " +"referred to as the I<flags> mask in the remainder of this page." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +msgid "" +"The I<flags> mask is specified as a bitwise OR of zero or more of the " +"constants listed below. Except as noted below, these flags are available " +"(and have the same effect) in both B<clone>() and B<clone3>()." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_CHILD_CLEARTID> (since Linux 2.5.49)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Clear (zero) the child thread ID at the location pointed to by I<child_tid> " +"(B<clone>()) or I<cl_args.child_tid> (B<clone3>()) in child memory when " +"the child exits, and do a wakeup on the futex at that address. The address " +"involved may be changed by the B<set_tid_address>(2) system call. This is " +"used by threading libraries." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_CHILD_SETTID> (since Linux 2.5.49)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Store the child thread ID at the location pointed to by I<child_tid> " +"(B<clone>()) or I<cl_args.child_tid> (B<clone3>()) in the child's memory. " +"The store operation completes before the clone call returns control to user " +"space in the child process. (Note that the store operation may not have " +"completed before the clone call returns in the parent process, which is " +"relevant if the B<CLONE_VM> flag is also employed.)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_CLEAR_SIGHAND> (since Linux 5.5)" +msgstr "" + +#. commit b612e5df4587c934bd056bf05f4a1deca4de4f75 +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"By default, signal dispositions in the child thread are the same as in the " +"parent. If this flag is specified, then all signals that are handled in the " +"parent (and not set to B<SIG_IGN>) are reset to their default dispositions " +"(B<SIG_DFL>) in the child." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Specifying this flag together with B<CLONE_SIGHAND> is nonsensical and " +"disallowed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_DETACHED> (historical)" +msgstr "" + +#. added in Linux 2.5.32; removed in Linux 2.6.0-test4 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For a while (during the Linux 2.5 development series) there was a " +"B<CLONE_DETACHED> flag, which caused the parent not to receive a signal when " +"the child terminated. Ultimately, the effect of this flag was subsumed " +"under the B<CLONE_THREAD> flag and by the time Linux 2.6.0 was released, " +"this flag had no effect. Starting in Linux 2.6.2, the need to give this " +"flag together with B<CLONE_THREAD> disappeared." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This flag is still defined, but it is usually ignored when calling " +"B<clone>(). However, see the description of B<CLONE_PIDFD> for some " +"exceptions." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_FILES> (since Linux 2.0)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_FILES> is set, the calling process and the child process share " +"the same file descriptor table. Any file descriptor created by the calling " +"process or by the child process is also valid in the other process. " +"Similarly, if one of the processes closes a file descriptor, or changes its " +"associated flags (using the B<fcntl>(2) B<F_SETFD> operation), the other " +"process is also affected. If a process sharing a file descriptor table " +"calls B<execve>(2), its file descriptor table is duplicated (unshared)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_FILES> is not set, the child process inherits a copy of all file " +"descriptors opened in the calling process at the time of the clone call. " +"Subsequent operations that open or close file descriptors, or change file " +"descriptor flags, performed by either the calling process or the child " +"process do not affect the other process. Note, however, that the duplicated " +"file descriptors in the child refer to the same open file descriptions as " +"the corresponding file descriptors in the calling process, and thus share " +"file offsets and file status flags (see B<open>(2))." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_FS> (since Linux 2.0)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_FS> is set, the caller and the child process share the same " +"filesystem information. This includes the root of the filesystem, the " +"current working directory, and the umask. Any call to B<chroot>(2), " +"B<chdir>(2), or B<umask>(2) performed by the calling process or the child " +"process also affects the other process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_FS> is not set, the child process works on a copy of the " +"filesystem information of the calling process at the time of the clone " +"call. Calls to B<chroot>(2), B<chdir>(2), or B<umask>(2) performed later " +"by one of the processes do not affect the other process." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_INTO_CGROUP> (since Linux 5.7)" +msgstr "" + +#. commit ef2c41cf38a7559bbf91af42d5b6a4429db8fc68 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, a child process is placed in the same version 2 cgroup as its " +"parent. The B<CLONE_INTO_CGROUP> flag allows the child process to be " +"created in a different version 2 cgroup. (Note that B<CLONE_INTO_CGROUP> " +"has effect only for version 2 cgroups.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In order to place the child process in a different cgroup, the caller " +"specifies B<CLONE_INTO_CGROUP> in I<cl_args.flags> and passes a file " +"descriptor that refers to a version 2 cgroup in the I<cl_args.cgroup> " +"field. (This file descriptor can be obtained by opening a cgroup v2 " +"directory using either the B<O_RDONLY> or the B<O_PATH> flag.) Note that " +"all of the usual restrictions (described in B<cgroups>(7)) on placing a " +"process into a version 2 cgroup apply." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Among the possible use cases for B<CLONE_INTO_CGROUP> are the following:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Spawning a process into a cgroup different from the parent's cgroup makes it " +"possible for a service manager to directly spawn new services into dedicated " +"cgroups. This eliminates the accounting jitter that would be caused if the " +"child process was first created in the same cgroup as the parent and then " +"moved into the target cgroup. Furthermore, spawning the child process " +"directly into a target cgroup is significantly cheaper than moving the child " +"process into the target cgroup after it has been created." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<CLONE_INTO_CGROUP> flag also allows the creation of frozen child " +"processes by spawning them into a frozen cgroup. (See B<cgroups>(7) for a " +"description of the freezer controller.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For threaded applications (or even thread implementations which make use of " +"cgroups to limit individual threads), it is possible to establish a fixed " +"cgroup layout before spawning each thread directly into its target cgroup." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_IO> (since Linux 2.6.25)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_IO> is set, then the new process shares an I/O context with the " +"calling process. If this flag is not set, then (as with B<fork>(2)) the " +"new process has its own I/O context." +msgstr "" + +#. The following based on text from Jens Axboe +#. the anticipatory and CFQ scheduler +#. with CFQ and AS. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I/O context is the I/O scope of the disk scheduler (i.e., what the I/O " +"scheduler uses to model scheduling of a process's I/O). If processes share " +"the same I/O context, they are treated as one by the I/O scheduler. As a " +"consequence, they get to share disk time. For some I/O schedulers, if two " +"processes share an I/O context, they will be allowed to interleave their " +"disk access. If several threads are doing I/O on behalf of the same process " +"(B<aio_read>(3), for instance), they should employ B<CLONE_IO> to get better " +"I/O performance." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the kernel is not configured with the B<CONFIG_BLOCK> option, this flag " +"is a no-op." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWCGROUP> (since Linux 4.6)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Create the process in a new cgroup namespace. If this flag is not set, then " +"(as with B<fork>(2)) the process is created in the same cgroup namespaces " +"as the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further information on cgroup namespaces, see B<cgroup_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWCGROUP>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWIPC> (since Linux 2.6.19)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWIPC> is set, then create the process in a new IPC namespace. " +"If this flag is not set, then (as with B<fork>(2)), the process is created " +"in the same IPC namespace as the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For further information on IPC namespaces, see B<ipc_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWIPC>. " +"This flag can't be specified in conjunction with B<CLONE_SYSVSEM>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWNET> (since Linux 2.6.24)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(The implementation of this flag was completed only by about Linux 2.6.29.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWNET> is set, then create the process in a new network " +"namespace. If this flag is not set, then (as with B<fork>(2)) the process " +"is created in the same network namespace as the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further information on network namespaces, see B<network_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWNET>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWNS> (since Linux 2.4.19)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWNS> is set, the cloned child is started in a new mount " +"namespace, initialized with a copy of the namespace of the parent. If " +"B<CLONE_NEWNS> is not set, the child lives in the same mount namespace as " +"the parent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further information on mount namespaces, see B<namespaces>(7) and " +"B<mount_namespaces>(7)." +msgstr "" + +#. See https://lwn.net/Articles/543273/ +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWNS>. It " +"is not permitted to specify both B<CLONE_NEWNS> and B<CLONE_FS> in the same " +"clone call." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWPID> (since Linux 2.6.24)" +msgstr "" + +# +#. This explanation draws a lot of details from +#. http://lwn.net/Articles/259217/ +#. Authors: Pavel Emelyanov <xemul@openvz.org> +#. and Kir Kolyshkin <kir@openvz.org> +#. The primary kernel commit is 30e49c263e36341b60b735cbef5ca37912549264 +#. Author: Pavel Emelyanov <xemul@openvz.org> +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWPID> is set, then create the process in a new PID namespace. " +"If this flag is not set, then (as with B<fork>(2)) the process is created " +"in the same PID namespace as the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further information on PID namespaces, see B<namespaces>(7) and " +"B<pid_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWPID>. " +"This flag can't be specified in conjunction with B<CLONE_THREAD>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWUSER>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(This flag first became meaningful for B<clone>() in Linux 2.6.23, the " +"current B<clone>() semantics were merged in Linux 3.5, and the final pieces " +"to make the user namespaces completely usable were merged in Linux 3.8.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWUSER> is set, then create the process in a new user " +"namespace. If this flag is not set, then (as with B<fork>(2)) the process " +"is created in the same user namespace as the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further information on user namespaces, see B<namespaces>(7) and " +"B<user_namespaces>(7)." +msgstr "" + +#. Before Linux 2.6.29, it appears that only CAP_SYS_ADMIN was needed +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Before Linux 3.8, use of B<CLONE_NEWUSER> required that the caller have " +"three capabilities: B<CAP_SYS_ADMIN>, B<CAP_SETUID>, and B<CAP_SETGID>. " +"Starting with Linux 3.8, no privileges are needed to create a user namespace." +msgstr "" + +#. commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71 +#. https://lwn.net/Articles/543273/ +#. The fix actually went into Linux 3.9 and into Linux 3.8.3. However, user namespaces +#. were, for practical purposes, unusable in earlier Linux 3.8.x because of the +#. various filesystems that didn't support userns. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This flag can't be specified in conjunction with B<CLONE_THREAD> or " +"B<CLONE_PARENT>. For security reasons, B<CLONE_NEWUSER> cannot be specified " +"in conjunction with B<CLONE_FS>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_NEWUTS> (since Linux 2.6.19)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_NEWUTS> is set, then create the process in a new UTS namespace, " +"whose identifiers are initialized by duplicating the identifiers from the " +"UTS namespace of the calling process. If this flag is not set, then (as " +"with B<fork>(2)) the process is created in the same UTS namespace as the " +"calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For further information on UTS namespaces, see B<uts_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWUTS>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_PARENT> (since Linux 2.3.12)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_PARENT> is set, then the parent of the new child (as returned by " +"B<getppid>(2)) will be the same as that of the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_PARENT> is not set, then (as with B<fork>(2)) the child's parent " +"is the calling process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that it is the parent process, as returned by B<getppid>(2), which is " +"signaled when the child terminates, so that if B<CLONE_PARENT> is set, then " +"the parent of the calling process, rather than the calling process itself, " +"is signaled." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<CLONE_PARENT> flag can't be used in clone calls by the global init " +"process (PID 1 in the initial PID namespace) and init processes in other " +"PID namespaces. This restriction prevents the creation of multi-rooted " +"process trees as well as the creation of unreapable zombies in the initial " +"PID namespace." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_PARENT_SETTID> (since Linux 2.5.49)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Store the child thread ID at the location pointed to by I<parent_tid> " +"(B<clone>()) or I<cl_args.parent_tid> (B<clone3>()) in the parent's " +"memory. (In Linux 2.5.32-2.5.48 there was a flag B<CLONE_SETTID> that did " +"this.) The store operation completes before the clone call returns control " +"to user space." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_PID> (Linux 2.0 to Linux 2.5.15)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_PID> is set, the child process is created with the same process " +"ID as the calling process. This is good for hacking the system, but " +"otherwise of not much use. From Linux 2.3.21 onward, this flag could be " +"specified only by the system boot process (PID 0). The flag disappeared " +"completely from the kernel sources in Linux 2.5.16. Subsequently, the " +"kernel silently ignored this bit if it was specified in the I<flags> mask. " +"Much later, the same bit was recycled for use as the B<CLONE_PIDFD> flag." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_PIDFD> (since Linux 5.2)" +msgstr "" + +#. commit b3e5838252665ee4cfa76b82bdf1198dca81e5be +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If this flag is specified, a PID file descriptor referring to the child " +"process is allocated and placed at a specified location in the parent's " +"memory. The close-on-exec flag is set on this new file descriptor. PID " +"file descriptors can be used for the purposes described in B<pidfd_open>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When using B<clone3>(), the PID file descriptor is placed at the location " +"pointed to by I<cl_args.pidfd>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When using B<clone>(), the PID file descriptor is placed at the location " +"pointed to by I<parent_tid>. Since the I<parent_tid> argument is used to " +"return the PID file descriptor, B<CLONE_PIDFD> cannot be used with " +"B<CLONE_PARENT_SETTID> when calling B<clone>()." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"It is currently not possible to use this flag together with B<CLONE_THREAD.> " +"This means that the process identified by the PID file descriptor will " +"always be a thread group leader." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the obsolete B<CLONE_DETACHED> flag is specified alongside B<CLONE_PIDFD> " +"when calling B<clone>(), an error is returned. An error also results if " +"B<CLONE_DETACHED> is specified when calling B<clone3>(). This error " +"behavior ensures that the bit corresponding to B<CLONE_DETACHED> can be " +"reused for further PID file descriptor features in the future." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_PTRACE> (since Linux 2.2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_PTRACE> is specified, and the calling process is being traced, " +"then trace the child also (see B<ptrace>(2))." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_SETTLS> (since Linux 2.5.32)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The TLS (Thread Local Storage) descriptor is set to I<tls>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The interpretation of I<tls> and the resulting effect is architecture " +"dependent. On x86, I<tls> is interpreted as a I<struct user_desc\\~*> (see " +"B<set_thread_area>(2)). On x86-64 it is the new value to be set for the %fs " +"base register (see the B<ARCH_SET_FS> argument to B<arch_prctl>(2)). On " +"architectures with a dedicated TLS register, it is the new value of that " +"register." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Use of this flag requires detailed knowledge and generally it should not be " +"used except in libraries implementing threading." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_SIGHAND> (since Linux 2.0)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_SIGHAND> is set, the calling process and the child process share " +"the same table of signal handlers. If the calling process or child process " +"calls B<sigaction>(2) to change the behavior associated with a signal, the " +"behavior is changed in the other process as well. However, the calling " +"process and child processes still have distinct signal masks and sets of " +"pending signals. So, one of them may block or unblock signals using " +"B<sigprocmask>(2) without affecting the other process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_SIGHAND> is not set, the child process inherits a copy of the " +"signal handlers of the calling process at the time of the clone call. Calls " +"to B<sigaction>(2) performed later by one of the processes have no effect " +"on the other process." +msgstr "" + +#. Precisely: Linux 2.6.0-test6 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.0, the I<flags> mask must also include B<CLONE_VM> if " +"B<CLONE_SIGHAND> is specified." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_STOPPED> (since Linux 2.6.0)" +msgstr "" + +#. Precisely: Linux 2.6.0-test2 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_STOPPED> is set, then the child is initially stopped (as though " +"it was sent a B<SIGSTOP> signal), and must be resumed by sending it a " +"B<SIGCONT> signal." +msgstr "" + +#. glibc 2.8 removed this defn from bits/sched.h +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This flag was I<deprecated> from Linux 2.6.25 onward, and was I<removed> " +"altogether in Linux 2.6.38. Since then, the kernel silently ignores it " +"without error. Starting with Linux 4.6, the same bit was reused for the " +"B<CLONE_NEWCGROUP> flag." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_SYSVSEM> (since Linux 2.5.10)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_SYSVSEM> is set, then the child and the calling process share a " +"single list of System V semaphore adjustment (I<semadj>) values (see " +"B<semop>(2)). In this case, the shared list accumulates I<semadj> values " +"across all processes sharing the list, and semaphore adjustments are " +"performed only when the last process that is sharing the list terminates (or " +"ceases sharing the list using B<unshare>(2)). If this flag is not set, then " +"the child has a separate I<semadj> list that is initially empty." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_THREAD> (since Linux 2.4.0)" +msgstr "" + +#. Precisely: Linux 2.6.0-test8 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_THREAD> is set, the child is placed in the same thread group as " +"the calling process. To make the remainder of the discussion of " +"B<CLONE_THREAD> more readable, the term \"thread\" is used to refer to the " +"processes within a thread group." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Thread groups were a feature added in Linux 2.4 to support the POSIX threads " +"notion of a set of threads that share a single PID. Internally, this shared " +"PID is the so-called thread group identifier (TGID) for the thread group. " +"Since Linux 2.4, calls to B<getpid>(2) return the TGID of the caller." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The threads within a group can be distinguished by their (system-wide) " +"unique thread IDs (TID). A new thread's TID is available as the function " +"result returned to the caller, and a thread can obtain its own TID using " +"B<gettid>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When a clone call is made without specifying B<CLONE_THREAD>, then the " +"resulting thread is placed in a new thread group whose TGID is the same as " +"the thread's TID. This thread is the I<leader> of the new thread group." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A new thread created with B<CLONE_THREAD> has the same parent process as the " +"process that made the clone call (i.e., like B<CLONE_PARENT>), so that calls " +"to B<getppid>(2) return the same value for all of the threads in a thread " +"group. When a B<CLONE_THREAD> thread terminates, the thread that created it " +"is not sent a B<SIGCHLD> (or other termination) signal; nor can the status " +"of such a thread be obtained using B<wait>(2). (The thread is said to be " +"I<detached>.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"After all of the threads in a thread group terminate the parent process of " +"the thread group is sent a B<SIGCHLD> (or other termination) signal." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If any of the threads in a thread group performs an B<execve>(2), then all " +"threads other than the thread group leader are terminated, and the new " +"program is executed in the thread group leader." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If one of the threads in a thread group creates a child using B<fork>(2), " +"then any thread in the group can B<wait>(2) for that child." +msgstr "" + +#. Precisely: Linux 2.6.0-test6 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.5.35, the I<flags> mask must also include B<CLONE_SIGHAND> if " +"B<CLONE_THREAD> is specified (and note that, since Linux 2.6.0, " +"B<CLONE_SIGHAND> also requires B<CLONE_VM> to be included)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Signal dispositions and actions are process-wide: if an unhandled signal is " +"delivered to a thread, then it will affect (terminate, stop, continue, be " +"ignored in) all members of the thread group." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Each thread has its own signal mask, as set by B<sigprocmask>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A signal may be process-directed or thread-directed. A process-directed " +"signal is targeted at a thread group (i.e., a TGID), and is delivered to an " +"arbitrarily selected thread from among those that are not blocking the " +"signal. A signal may be process-directed because it was generated by the " +"kernel for reasons other than a hardware exception, or because it was sent " +"using B<kill>(2) or B<sigqueue>(3). A thread-directed signal is targeted " +"at (i.e., delivered to) a specific thread. A signal may be thread directed " +"because it was sent using B<tgkill>(2) or B<pthread_sigqueue>(3), or " +"because the thread executed a machine language instruction that triggered a " +"hardware exception (e.g., invalid memory access triggering B<SIGSEGV> or a " +"floating-point exception triggering B<SIGFPE>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A call to B<sigpending>(2) returns a signal set that is the union of the " +"pending process-directed signals and the signals that are pending for the " +"calling thread." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a process-directed signal is delivered to a thread group, and the thread " +"group has installed a handler for the signal, then the handler is invoked in " +"exactly one, arbitrarily selected member of the thread group that has not " +"blocked the signal. If multiple threads in a group are waiting to accept " +"the same signal using B<sigwaitinfo>(2), the kernel will arbitrarily select " +"one of these threads to receive the signal." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_UNTRACED> (since Linux 2.5.46)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_UNTRACED> is specified, then a tracing process cannot force " +"B<CLONE_PTRACE> on this child process." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_VFORK> (since Linux 2.2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_VFORK> is set, the execution of the calling process is suspended " +"until the child releases its virtual memory resources via a call to " +"B<execve>(2) or B<_exit>(2) (as with B<vfork>(2))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_VFORK> is not set, then both the calling process and the child " +"are schedulable after the call, and an application should not rely on " +"execution occurring in any particular order." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<CLONE_VM> (since Linux 2.0)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_VM> is set, the calling process and the child process run in the " +"same memory space. In particular, memory writes performed by the calling " +"process or by the child process are also visible in the other process. " +"Moreover, any memory mapping or unmapping performed with B<mmap>(2) or " +"B<munmap>(2) by the child or calling process also affects the other process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If B<CLONE_VM> is not set, the child process runs in a separate copy of the " +"memory space of the calling process at the time of the clone call. Memory " +"writes or file mappings/unmappings performed by one of the processes do not " +"affect the other, as with B<fork>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the B<CLONE_VM> flag is specified and the B<CLONE_VFORK> flag is not " +"specified, then any alternate signal stack that was established by " +"B<sigaltstack>(2) is cleared in the child process." +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 "" + +#. gettid(2) returns current->pid; +#. getpid(2) returns current->tgid; +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On success, the thread ID of the child process is returned in the caller's " +"thread of execution. On failure, -1 is returned in the caller's context, no " +"child process is created, and I<errno> is set to indicate the error." +msgstr "" + +#. 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: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EACCES> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_INTO_CGROUP> was specified in I<cl_args.flags>, but the restrictions " +"(described in B<cgroups>(7)) on placing the child process into the version " +"2 cgroup referred to by I<cl_args.cgroup> are not met." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EAGAIN>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Too many processes are already running; see B<fork>(2)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EBUSY> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_INTO_CGROUP> was specified in I<cl_args.flags>, but the file " +"descriptor specified in I<cl_args.cgroup> refers to a version 2 cgroup in " +"which a domain controller is enabled." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EEXIST> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"One (or more) of the PIDs specified in I<set_tid> already exists in the " +"corresponding PID namespace." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both B<CLONE_SIGHAND> and B<CLONE_CLEAR_SIGHAND> were specified in the " +"I<flags> mask." +msgstr "" + +#. Precisely: Linux 2.6.0-test6 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_SIGHAND> was specified in the I<flags> mask, but B<CLONE_VM> was " +"not. (Since Linux 2.6.0.)" +msgstr "" + +#. .TP +#. .B EINVAL +#. Precisely one of +#. .B CLONE_DETACHED +#. and +#. .B CLONE_THREAD +#. was specified. +#. (Since Linux 2.6.0-test6.) +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_THREAD> was specified in the I<flags> mask, but B<CLONE_SIGHAND> was " +"not. (Since Linux 2.5.35.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_THREAD> was specified in the I<flags> mask, but the current process " +"previously called B<unshare>(2) with the B<CLONE_NEWPID> flag or used " +"B<setns>(2) to reassociate itself with a PID namespace." +msgstr "" + +#. commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both B<CLONE_FS> and B<CLONE_NEWNS> were specified in the I<flags> mask." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL> (since Linux 3.9)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both B<CLONE_NEWUSER> and B<CLONE_FS> were specified in the I<flags> mask." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both B<CLONE_NEWIPC> and B<CLONE_SYSVSEM> were specified in the I<flags> " +"mask." +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<CLONE_NEWPID> and one (or both) of B<CLONE_THREAD> or B<CLONE_PARENT> were " +"specified in the I<flags> mask." +msgstr "" + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<CLONE_NEWUSER> and B<CLONE_THREAD> were specified in the I<flags> mask." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL> (since Linux 2.6.32)" +msgstr "" + +#. commit 123be07b0b399670a7cc3d82fef0cb4f93ef885c +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<CLONE_PARENT> was specified, and the caller is an init process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Returned by the glibc B<clone>() wrapper function when I<fn> or I<stack> is " +"specified as NULL." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWIPC> was specified in the I<flags> mask, but the kernel was not " +"configured with the B<CONFIG_SYSVIPC> and B<CONFIG_IPC_NS> options." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWNET> was specified in the I<flags> mask, but the kernel was not " +"configured with the B<CONFIG_NET_NS> option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWPID> was specified in the I<flags> mask, but the kernel was not " +"configured with the B<CONFIG_PID_NS> option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUSER> was specified in the I<flags> mask, but the kernel was not " +"configured with the B<CONFIG_USER_NS> option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUTS> was specified in the I<flags> mask, but the kernel was not " +"configured with the B<CONFIG_UTS_NS> option." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<stack> is not aligned to a suitable boundary for this architecture. For " +"example, on aarch64, I<stack> must be a multiple of 16." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<CLONE_DETACHED> was specified in the I<flags> mask." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL> (B<clone>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_PIDFD> was specified together with B<CLONE_DETACHED> in the I<flags> " +"mask." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_PIDFD> was specified together with B<CLONE_THREAD> in the I<flags> " +"mask." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL >(B<clone>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_PIDFD> was specified together with B<CLONE_PARENT_SETTID> in the " +"I<flags> mask." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<set_tid_size> is greater than the number of nested PID namespaces." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "One of the PIDs specified in I<set_tid> was an invalid." +msgstr "" + +#. commit 7f192e3cd316ba58c88dfa26796cf77789dd9872 +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"B<CLONE_THREAD> or B<CLONE_PARENT> was specified in the I<flags> mask, but a " +"signal was specified in I<exit_signal>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL> (AArch64 only, Linux 4.6 and earlier)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I<stack> was not aligned to a 128-bit boundary." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOMEM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cannot allocate sufficient memory to allocate a task structure for the " +"child, or to copy those parts of the caller's context that need to be copied." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOSPC> (since Linux 3.7)" +msgstr "" + +#. commit f2302505775fd13ba93f034206f1e2a587017929 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWPID> was specified in the I<flags> mask, but the limit on the " +"nesting depth of PID namespaces would have been exceeded; see " +"B<pid_namespaces>(7)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOSPC> (since Linux 4.9; beforehand B<EUSERS>)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUSER> was specified in the I<flags> mask, and the call would " +"cause the limit on the number of nested user namespaces to be exceeded. See " +"B<user_namespaces>(7)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"From Linux 3.11 to Linux 4.8, the error diagnosed in this case was B<EUSERS>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOSPC> (since Linux 4.9)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"One of the values in the I<flags> mask specified the creation of a new user " +"namespace, but doing so would have caused the limit defined by the " +"corresponding file in I</proc/sys/user> to be exceeded. For further " +"details, see B<namespaces>(7)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EOPNOTSUPP> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_INTO_CGROUP> was specified in I<cl_args.flags>, but the file " +"descriptor specified in I<cl_args.cgroup> refers to a version 2 cgroup that " +"is in the I<domain invalid> state." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWCGROUP>, B<CLONE_NEWIPC>, B<CLONE_NEWNET>, B<CLONE_NEWNS>, " +"B<CLONE_NEWPID>, or B<CLONE_NEWUTS> was specified by an unprivileged process " +"(process without B<CAP_SYS_ADMIN>)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_PID> was specified by a process other than process 0. (This error " +"occurs only on Linux 2.5.15 and earlier.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUSER> was specified in the I<flags> mask, but either the " +"effective user ID or the effective group ID of the caller does not have a " +"mapping in the parent namespace (see B<user_namespaces>(7))." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM> (since Linux 3.9)" +msgstr "" + +#. commit 3151527ee007b73a0ebd296010f1c0454a919c7d +#. FIXME What is the rationale for this restriction? +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUSER> was specified in the I<flags> mask and the caller is in a " +"chroot environment (i.e., the caller's root directory does not match the " +"root directory of the mount namespace in which it resides)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM> (B<clone3>() only)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<set_tid_size> was greater than zero, and the caller lacks the " +"B<CAP_SYS_ADMIN> capability in one or more of the user namespaces that own " +"the corresponding PID namespaces." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ERESTARTNOINTR> (since Linux 2.6.17)" +msgstr "" + +#. commit 4a2c7a7837da1b91468e50426066d988050e4d56 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"System call was interrupted by a signal and will be restarted. (This can be " +"seen only during a trace.)" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EUSERS> (Linux 3.11 to Linux 4.8)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_NEWUSER> was specified in the I<flags> mask, and the limit on the " +"number of nested user namespaces would be exceeded. See the discussion of " +"the B<ENOSPC> error above." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "VERSIONS" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The glibc B<clone>() wrapper function makes some changes in the memory " +"pointed to by I<stack> (changes required to set the stack up correctly for " +"the child) I<before> invoking the B<clone>() system call. So, in cases " +"where B<clone>() is used to recursively create children, do not use the " +"buffer employed for the parent's stack as the stack of the child." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On i386, B<clone>() should not be called through vsyscall, but directly " +"through I<int $0x80>." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "C library/kernel differences" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The raw B<clone>() system call corresponds more closely to B<fork>(2) in " +"that execution in the child continues from the point of the call. As such, " +"the I<fn> and I<arg> arguments of the B<clone>() wrapper function are " +"omitted." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In contrast to the glibc wrapper, the raw B<clone>() system call accepts " +"NULL as a I<stack> argument (and B<clone3>() likewise allows I<cl_args." +"stack> to be NULL). In this case, the child uses a duplicate of the " +"parent's stack. (Copy-on-write semantics ensure that the child gets " +"separate copies of stack pages when either process modifies the stack.) In " +"this case, for correct operation, the B<CLONE_VM> option should not be " +"specified. (If the child I<shares> the parent's memory because of the use " +"of the B<CLONE_VM> flag, then no copy-on-write duplication occurs and chaos " +"is likely to result.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The order of the arguments also differs in the raw system call, and there " +"are variations in the arguments across architectures, as detailed in the " +"following paragraphs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The raw system call interface on x86-64 and some other architectures " +"(including sh, tile, and alpha) is:" +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<long clone(unsigned long >I<flags>B<, void *>I<stack>B<,>\n" +"B< int *>I<parent_tid>B<, int *>I<child_tid>B<,>\n" +"B< unsigned long >I<tls>B<);>\n" +msgstr "" + +#. CONFIG_CLONE_BACKWARDS +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On x86-32, and several other common architectures (including score, ARM, ARM " +"64, PA-RISC, arc, Power PC, xtensa, and MIPS), the order of the last two " +"arguments is reversed:" +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<long clone(unsigned long >I<flags>B<, void *>I<stack>B<,>\n" +"B< int *>I<parent_tid>B<, unsigned long >I<tls>B<,>\n" +"B< int *>I<child_tid>B<);>\n" +msgstr "" + +#. CONFIG_CLONE_BACKWARDS2 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On the cris and s390 architectures, the order of the first two arguments is " +"reversed:" +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<long clone(void *>I<stack>B<, unsigned long >I<flags>B<,>\n" +"B< int *>I<parent_tid>B<, int *>I<child_tid>B<,>\n" +"B< unsigned long >I<tls>B<);>\n" +msgstr "" + +#. CONFIG_CLONE_BACKWARDS3 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "On the microblaze architecture, an additional argument is supplied:" +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<long clone(unsigned long >I<flags>B<, void *>I<stack>B<,>\n" +"B< int >I<stack_size>B<,> /* Size of stack */\n" +"B< int *>I<parent_tid>B<, int *>I<child_tid>B<,>\n" +"B< unsigned long >I<tls>B<);>\n" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "blackfin, m68k, and sparc" +msgstr "" + +#. Mike Frysinger noted in a 2013 mail: +#. these arches don't define __ARCH_WANT_SYS_CLONE: +#. blackfin ia64 m68k sparc +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The argument-passing conventions on blackfin, m68k, and sparc are different " +"from the descriptions above. For details, see the kernel (and glibc) source." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ia64" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "On ia64, a different interface is used:" +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<int __clone2(int (*>I<fn>B<)(void *),>\n" +"B< void *>I<stack_base>B<, size_t >I<stack_size>B<,>\n" +"B< int >I<flags>B<, void *>I<arg>B<, ...>\n" +"B< /* pid_t *>I<parent_tid>B<, struct user_desc *>I<tls>B<,>\n" +"B< pid_t *>I<child_tid>B< */ );>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The prototype shown above is for the glibc wrapper function; for the system " +"call itself, the prototype can be described as follows (it is identical to " +"the B<clone>() prototype on microblaze):" +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<long clone2(unsigned long >I<flags>B<, void *>I<stack_base>B<,>\n" +"B< int >I<stack_size>B<,> /* Size of stack */\n" +"B< int *>I<parent_tid>B<, int *>I<child_tid>B<,>\n" +"B< unsigned long >I<tls>B<);>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<__clone2>() operates in the same way as B<clone>(), except that " +"I<stack_base> points to the lowest address of the child's stack area, and " +"I<stack_size> specifies the size of the stack pointed to by I<stack_base>." +msgstr "" + +#. 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 "" + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "" + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<clone3>()" +msgstr "" + +#. There is no entry for +#. .BR clone () +#. in libc5. +#. glibc2 provides +#. .BR clone () +#. as described in this manual page. +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux 5.3." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Linux 2.4 and earlier" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the Linux 2.4.x series, B<CLONE_THREAD> generally does not make the " +"parent of the new thread the same as the parent of the calling process. " +"However, from Linux 2.4.7 to Linux 2.4.18 the B<CLONE_THREAD> flag implied " +"the B<CLONE_PARENT> flag (as in Linux 2.6.0 and later)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In Linux 2.4 and earlier, B<clone>() does not take arguments I<parent_tid>, " +"I<tls>, and I<child_tid>." +msgstr "" + +#. 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 "" +"One use of these systems calls is to implement threads: multiple flows of " +"control in a program that run concurrently in a shared address space." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<kcmp>(2) system call can be used to test whether two processes share " +"various resources such as a file descriptor table, System V semaphore undo " +"operations, or a virtual address space." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Handlers registered using B<pthread_atfork>(3) are not executed during a " +"clone call." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BUGS" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"GNU C library versions 2.3.4 up to and including 2.24 contained a wrapper " +"function for B<getpid>(2) that performed caching of PIDs. This caching " +"relied on support in the glibc wrapper for B<clone>(), but limitations in " +"the implementation meant that the cache was not up to date in some " +"circumstances. In particular, if a signal was delivered to the child " +"immediately after the B<clone>() call, then a call to B<getpid>(2) in a " +"handler for the signal could return the PID of the calling process (\"the " +"parent\"), if the clone wrapper had not yet had a chance to update the PID " +"cache in the child. (This discussion ignores the case where the child was " +"created using B<CLONE_THREAD>, when B<getpid>(2) I<should> return the same " +"value in the child and in the process that called B<clone>(), since the " +"caller and the child are in the same thread group. The stale-cache problem " +"also does not occur if the I<flags> argument includes B<CLONE_VM>.) To get " +"the truth, it was sometimes necessary to use code such as the following:" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"#include E<lt>syscall.hE<gt>\n" +"\\&\n" +"pid_t mypid;\n" +"\\&\n" +"mypid = syscall(SYS_getpid);\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Because of the stale-cache problem, as well as other problems noted in " +"B<getpid>(2), the PID caching feature was removed in glibc 2.25." +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 "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following program demonstrates the use of B<clone>() to create a child " +"process that executes in a separate UTS namespace. The child changes the " +"hostname in its UTS namespace. Both parent and child then display the " +"system hostname, making it possible to see that the hostname differs in the " +"UTS namespaces of the parent and child. For an example of the use of this " +"program, see B<setns>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Within the sample program, we allocate the memory that is to be used for the " +"child's stack using B<mmap>(2) rather than B<malloc>(3) for the following " +"reasons:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<mmap>(2) allocates a block of memory that starts on a page boundary and " +"is a multiple of the page size. This is useful if we want to establish a " +"guard page (a page with protection B<PROT_NONE>) at the end of the stack " +"using B<mprotect>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"We can specify the B<MAP_STACK> flag to request a mapping that is suitable " +"for a stack. For the moment, this flag is a no-op on Linux, but it exists " +"and has effect on some other systems, so we should include it for " +"portability." +msgstr "" + +#. 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 "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>sched.hE<gt>\n" +"#include E<lt>signal.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\n" +"#include E<lt>sys/utsname.hE<gt>\n" +"#include E<lt>sys/wait.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"\\&\n" +"static int /* Start function for cloned child */\n" +"childFunc(void *arg)\n" +"{\n" +" struct utsname uts;\n" +"\\&\n" +" /* Change hostname in UTS namespace of child. */\n" +"\\&\n" +" if (sethostname(arg, strlen(arg)) == -1)\n" +" err(EXIT_FAILURE, \"sethostname\");\n" +"\\&\n" +" /* Retrieve and display hostname. */\n" +"\\&\n" +" if (uname(&uts) == -1)\n" +" err(EXIT_FAILURE, \"uname\");\n" +" printf(\"uts.nodename in child: %s\\en\", uts.nodename);\n" +"\\&\n" +" /* Keep the namespace open for a while, by sleeping.\n" +" This allows some experimentation--for example, another\n" +" process might join the namespace. */\n" +"\\&\n" +" sleep(200);\n" +"\\&\n" +" return 0; /* Child terminates now */\n" +"}\n" +"\\&\n" +"#define STACK_SIZE (1024 * 1024) /* Stack size for cloned child */\n" +"\\&\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" char *stack; /* Start of stack buffer */\n" +" char *stackTop; /* End of stack buffer */\n" +" pid_t pid;\n" +" struct utsname uts;\n" +"\\&\n" +" if (argc E<lt> 2) {\n" +" fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n" +" exit(EXIT_SUCCESS);\n" +" }\n" +"\\&\n" +" /* Allocate memory to be used for the stack of the child. */\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" +" stackTop = stack + STACK_SIZE; /* Assume stack grows downward */\n" +"\\&\n" +" /* Create child that has its own UTS namespace;\n" +" child commences execution in childFunc(). */\n" +"\\&\n" +" pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n" +" if (pid == -1)\n" +" err(EXIT_FAILURE, \"clone\");\n" +" printf(\"clone() returned %jd\\en\", (intmax_t) pid);\n" +"\\&\n" +" /* Parent falls through to here */\n" +"\\&\n" +" sleep(1); /* Give child time to change its hostname */\n" +"\\&\n" +" /* Display hostname in parent\\[aq]s UTS namespace. This will be\n" +" different from hostname in child\\[aq]s UTS namespace. */\n" +"\\&\n" +" if (uname(&uts) == -1)\n" +" err(EXIT_FAILURE, \"uname\");\n" +" printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n" +"\\&\n" +" if (waitpid(pid, NULL, 0) == -1) /* Wait for child */\n" +" err(EXIT_FAILURE, \"waitpid\");\n" +" printf(\"child has terminated\\en\");\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<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), B<mmap>(2), " +"B<pidfd_open>(2), B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), " +"B<tkill>(2), B<unshare>(2), B<wait>(2), B<capabilities>(7), " +"B<namespaces>(7), B<pthreads>(7)" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the remainder of this page, the terminology \"the clone call\" is used " +"when noting details that apply to all of these interfaces," +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +msgid "" +"The I<flags> mask is specified as a bitwise-OR of zero or more of the " +"constants listed below. Except as noted below, these flags are available " +"(and have the same effect) in both B<clone>() and B<clone3>()." +msgstr "" + +#. commit b612e5df4587c934bd056bf05f4a1deca4de4f75 +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, signal dispositions in the child thread are the same as in the " +"parent. If this flag is specified, then all signals that are handled in the " +"parent are reset to their default dispositions (B<SIG_DFL>) in the child." +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a privileged process (B<CAP_SYS_ADMIN>) can employ B<CLONE_NEWPID>. " +"This flag can't be specified in conjunction with B<CLONE_THREAD> or " +"B<CLONE_PARENT>." +msgstr "" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"One (or both) of B<CLONE_NEWPID> or B<CLONE_NEWUSER> and one (or both) of " +"B<CLONE_THREAD> or B<CLONE_PARENT> were specified in the I<flags> mask." +msgstr "" + +#. There is no entry for +#. .BR clone () +#. in libc5. +#. glibc2 provides +#. .BR clone () +#. as described in this manual page. +#. type: Plain text +#: debian-bookworm +msgid "The B<clone3>() system call first appeared in Linux 5.3." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"These system calls are Linux-specific and should not be used in programs " +"intended to be portable." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Note that the glibc B<clone>() wrapper function makes some changes in the " +"memory pointed to by I<stack> (changes required to set the stack up " +"correctly for the child) I<before> invoking the B<clone>() system call. " +"So, in cases where B<clone>() is used to recursively create children, do " +"not use the buffer employed for the parent's stack as the stack of the child." +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "#include E<lt>syscall.hE<gt>\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "pid_t mypid;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "mypid = syscall(SYS_getpid);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>sched.hE<gt>\n" +"#include E<lt>signal.hE<gt>\n" +"#include E<lt>stdint.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>string.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\n" +"#include E<lt>sys/utsname.hE<gt>\n" +"#include E<lt>sys/wait.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"static int /* Start function for cloned child */\n" +"childFunc(void *arg)\n" +"{\n" +" struct utsname uts;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Change hostname in UTS namespace of child. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (sethostname(arg, strlen(arg)) == -1)\n" +" err(EXIT_FAILURE, \"sethostname\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Retrieve and display hostname. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (uname(&uts) == -1)\n" +" err(EXIT_FAILURE, \"uname\");\n" +" printf(\"uts.nodename in child: %s\\en\", uts.nodename);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Keep the namespace open for a while, by sleeping.\n" +" This allows some experimentation--for example, another\n" +" process might join the namespace. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " sleep(200);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return 0; /* Child terminates now */\n" +"}\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "#define STACK_SIZE (1024 * 1024) /* Stack size for cloned child */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" char *stack; /* Start of stack buffer */\n" +" char *stackTop; /* End of stack buffer */\n" +" pid_t pid;\n" +" struct utsname uts;\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (argc E<lt> 2) {\n" +" fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n" +" exit(EXIT_SUCCESS);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Allocate memory to be used for the stack of the child. */\n" +msgstr "" + +#. 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 "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " stackTop = stack + STACK_SIZE; /* Assume stack grows downward */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Create child that has its own UTS namespace;\n" +" child commences execution in childFunc(). */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n" +" if (pid == -1)\n" +" err(EXIT_FAILURE, \"clone\");\n" +" printf(\"clone() returned %jd\\en\", (intmax_t) pid);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " /* Parent falls through to here */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " sleep(1); /* Give child time to change its hostname */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" /* Display hostname in parent\\[aq]s UTS namespace. This will be\n" +" different from hostname in child\\[aq]s UTS namespace. */\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (uname(&uts) == -1)\n" +" err(EXIT_FAILURE, \"uname\");\n" +" printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" if (waitpid(pid, NULL, 0) == -1) /* Wait for child */\n" +" err(EXIT_FAILURE, \"waitpid\");\n" +" printf(\"child has terminated\\en\");\n" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-05-03" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "" + +#. commit 7f192e3cd316ba58c88dfa26796cf77789dd9872 +#. type: Plain text +#: debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<CLONE_THREAD> or B<CLONE_PARENT> was specified in the I<flags> mask, but a " +"signal was specified in I<exit_signal.>" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |