POSIXSHMCONTROL(1)      FreeBSD General Commands Manual     POSIXSHMCONTROL(1)

NAME

     posixshmcontrol - Control POSIX shared memory segments

SYNOPSIS

     posixshmcontrol create [-l pagesize] [-m mode] [path ...]
     posixshmcontrol rm [path ...]
     posixshmcontrol ls [-h] [-n] [-j jail]
     posixshmcontrol dump [path ...]
     posixshmcontrol stat [-h] [-n] [path ...]
     posixshmcontrol truncate [-s length] [path ...]

DESCRIPTION

     The posixshmcontrol command manipulates the named POSIX shared memory
     segments.  It allows inspecting existing segments, dumping their metadata
     or contents, and unlinking them.

     Unlinking removes the name from the system and, when the last process
     unmaps the segment and closes file descriptor pointing to the segment,
     frees underlying memory.

     The number of hard links as displayed by the stat subcommand, is equal to
     the number of references to the underlying VM object.  It is almost
     always equal to the number of mappings +1, except for transient
     references.

     The following subcommands are provided:

     create    Create segments with the specified paths, if they do not
               already exist.

               The optional pagesize argument specifies the size of the
               virtual pages used to map the object with mmap(2).  By default,
               the system page size is used, but on some platforms a larger
               page size can be specified.  The size of an object backed by
               large pages must be a multiple of the specified page size.  The
               hw.pagesizes sysctl variable lists the available page sizes.

               The optional numerical mode argument specifies the initial
               access mode.

     rm        Unlink the paths specified.

     ls        List all linked named shared memory segments visible to the
               caller.  For each segment, the user and group owner, size, and
               path are displayed.  The -j option limits the output to
               segments within the specified jail name or id.

     dump      Output raw bytes values from the segment to standard output.

     stat      Print metadata for the specified path, in the format similar to
               the stat(1) utility.

     truncate  Change the length of the segments.  Argument to the -s option
               specifies new length.  The human-friendly 'k', 'm', 'g'
               suffixes can be used, see expand_number(3).  If the option is
               not specified, assumed length is zero.

     For some commands, the following options may be provided:

     -h   If specified, requests human-readable display of size, see
          humanize_number(3).

     -n   Prevent translation of owner and group into symbolic names using
          name-switch services, instead the raw numeric values are printed.

EXIT STATUS

     The posixshmcontrol utility exits 0 on success, and >0 if an error
     occurs.

EXAMPLES

     o   To show content of the shared memory segment with the path /1, use
         the command
               posixshmcontrol dump /1 | hexdump -C

     o   To create a segment with the path /2 and then enlarge it to 1M, use
         the sequence of commands
               posixshmcontrol create /2
               posixshmcontrol truncate -s 1m /2

SEE ALSO

     hexdump(1), stat(1), ftruncate(2), mmap(2), read(2), shm_open(2),
     shm_unlink(2), stat(2), expand_number(3), humanize_number(3),
     shm_create_largepage(3), sysctl(3)

HISTORY

     The posixshmcontrol command appeared in FreeBSD 12.1.

AUTHORS

     The posixshmcontrol command and this manual page were written by
     Konstantin Belousov <kib@freebsd.org> under sponsorship from The FreeBSD
     Foundation.

FreeBSD 15.1-STABLE-HBSD         May 25, 2023               POSIXSHMCONTROL(1)