Provided by: procenv_0.50-1_amd64 bug

NAME

       procenv - display process environment details

SYNOPSIS

       procenv [OPTION]

DESCRIPTION

       Display details of the process environment in a parseable format.

OPTIONS

       Options shown with a bracketed asterisk '(*)' are non-display options and must preceed any
       other (display) options.

       -a, --meta
              Display meta details.

       -A, --arguments
              Display program arguments.

       -b, --libs
              Display details of linked libraries.  See dl_iterate_phdr(3).

       -B, --libc
              Display standard library details.  See feature_test_macros(7) (Linux).

       -c, --cgroups
              Display cgroup details (Linux only).  See proc(5).

       -C, --cpu
              Display    CPU    and    scheduler    details.     See    kvm_getprocs(3)    (BSD),
              pthread_getaffinity_np(3), sched_getcpu(3) (Linux).

       --crumb-separator=str (*)
              Specify string str as alternate delimiter for crumb format output (default=':').

       -d, --compiler
              Display compiler details.  See cpp(1), cc(1) and feature_test_macros(7) (Linux).

       -e, --environment
              Display environment variables.  See environ(7).

       -E, --semaphores
              Display semaphore details (not queryable on BSD).  See semctl(2).

       --exec (*)
              Treat  non-option  arguments  as  program  to  execute  after running procenv.  See
              exec(3).

       -f, --fds
              Display file descriptor details. Under FreeBSD, file descriptor  capabilities  will
              also  be  displayed  assuming  the kernel has Capsicum support.  See cap_getmode(2)
              (BSD), cap_rights_get(2) (BSD), cap_rights_is_set(3) (BSD), fcntl(2), isatty(5).

       -F, --namespaces
              Display namespace details (Linux only).  See proc(5).

       --file=FILE (*)
              Send output to file FILE (implies --output=file).

       --file-append (*)
              If --file is specifed, append to it rather than overwriting it.

       --format=FORMAT (*)
              Specify output format.  FORMAT may be one of:

              ·   crumb ("breadcrumbs").

              ·   json (JavaScript Object Notation).

              ·   text (plain ASCII text) [default].

              ·   xml (Extensible Markup Language).

       -g, --sizeof
              Display sizes of data types.

       -h, --help
              This help text.

       -i, --misc
              Display miscellaneous details.  See umask(P),  getcwd(3),  personality(2)  (Linux),
              proc(5),   prctl(2),   aa_getcon(2)   (Linux),  getpidcon(3)  (Linux),  sysconf(3),
              kvm_getprocs(3) (BSD), getpriority(2).

       --indent (*)
              Number of indent characters to use for each indent (default=2).

       --indent-char=c (*)
              Use character c for indenting (default=' ' (space)).

       -j, --uname
              Display uname details.  See uname(2).

       -k, --clocks
              Display clock details.  See clock_getres(2).

       -l, --limits
              Display limits.  See getrlimit(2).

       -L, --locale
              Display locale details.  See setlocale(3) and locale(7).

       -m, --mounts
              Display mount details.  See getmntent(3) and statfs(2) (Linux),  and  getmntinfo(3)
              (BSD).

       -M, --message-queues
              Display message queue details (not queryable on BSD).  See msgctl(2).

       -n, --confstr
              Display confstr details.  See confstr(5).

       -N, --network
              Display  network  details.  See getifaddrs(3), getnameinfo(3), ip(7), netdevice(7),
              and ioctl(2) (Linux).

       -o, --oom
              Display out-of-memory manager details (Linux only).  See proc(5).

       --output=TYPE (*)
              Send output to alternative location. TYPE can be one of:

              ·   file (send output to a file).

              ·   stderr (write to standard error).

              ·   stdout (write to standard output (default)).

              ·   syslog (write to the system log file).

              ·   terminal (write to terminal).

       -p, --process
              Display process details.  See getpid(2),  getppid(2),  getresuid(2),  getresgid(2),
              getuid(2),  geteuid(2),  getgid(2), getegid(2), getsid(2), getlogin(3), getpgrp(2),
              ctermid(3), tcgetpgrp(3), tcgetsid(3), getpwuid(3) and getgroups(2).

       -P, --platform
              Display platform details.

       -q, --time
              Display time details.  See clock_gettime(2), localtime(3) and asctime(3).

       -r, --ranges
              Display range of data types.  See limits.h(P).

       -s, --signals
              Display signal details.  See sigaction(2).

       -S, --shared-memory
              Display shared memory details (not queryable on BSD).  See shmctl(2).

       --separator=str (*)
              Specify string str as alternate delimiter for text format output (default=': ').

       -t, --tty
              Display terminal details. On Linux, will also show if  any  attributes  are  locked
              when running as root.  See tcgetattr(3) and  tty_ioctl(4) (Linux).

       -T, --threads
              Display        thread       details.        See       pthread_attr_getstacksize(3),
              pthread_attr_getstacksize(3) and pthread_attr_getguardsize(3).

       -u, --stat
              Display stat details.  See stat(2).

       -U, --rusage
              Display rusage details.  See getrusage(2).

       -v, --version
              Display version details.

       -w, --capabilities
              Display Linux capability details. For FreeBSD  file  descriptor  capabilities,  see
              --file-descriptors.  See prctl(2) (Linux), libcap(3) (Linux).

       -x, --pathconf
              Display pathconf details.  See pathconf(3).

       -y, --sysconf
              Display sysconf details.  See sysconf(3) and posixoptions(7) (Linux).

       -Y, --memory
              Display memory details.  See getpagesize(2), numa(3) (Linux) and numa(7) (Linux).

       -z, --timezone
              Display timezone details.  See tzset(3).

ENVIRONMENT VARIABLES

       The  following  environment  variables  may  be  used  as  aliases  to  their command-line
       counterparts:

       PROCENV_CRUMB_SEPARATOR
              Alternative to --crumb-separator.

       PROCENV_EXEC
              Alternative to --exec.

       PROCENV_FILE
              Alternative to --file.

       PROCENV_FILE_APPEND
              Alternative to --file-append.

       PROCENV_FORMAT
              Alternative to --format.

       PROCENV_INDENT
              Alternative to --indent.

       PROCENV_INDENT_CHAR
              Alternative to --indent-char.

       PROCENV_SEPARATOR
              Alternative to --separator.

       PROCENV_OUTPUT
              Alternative to --output.

NOTES

       ·   Options are considered in order, so --output should precede any other option.

       ·   If no display option is specified, all details are displayed.

       ·   Only one display option may be specified.

       ·   Command-line options take priority over environment variables.

       ·   All values for --indent-char are literal except '\t' which can be used  to  specify  a
           tab character. The same is true for --separator-char and --crumb-separator but only if
           it is the first character specified.

       ·   Specifying a visible indent-char is only (vaguely) meaningful for text output.

       ·   If --exec is specified, atleast one non-option argument must also be specified.

       ·   Any long option name may be shortened as long as it remains unique.

       ·   The crumb output format is designed for easy  parsing:  it  displays  the  data  in  a
           flattened  format  with  each  value  on  a  separate line preceded by all appropriate
           headings which are separated by the current separator.

       ·   The --message-queues, --semaphores and --shared-memory options are  not  available  on
           BSD since although the values are queryable, there is no documented method to do so.

EXAMPLES

        # Show limits
        procenv -l

        # Send compiler information to syslog (note the order of the options).
        procenv --output=syslog --compiler

        # Write compiler details direct to the terminal
        procenv --output=terminal --compiler

        # Run a command ('mycmd --arg1 --foo=bar') without creating a new
        # process, but have procenv run first and log its output to a
        # regular file.
        exec procenv --file=/tmp/procenv.log --exec -- mycmd --arg1 --foo=bar

        # The following kernel command-line snippet will cause procenv to
        # write output to first serial tty device and then execute init(8)
        # in debug mode to allow early boot environment to be examined.
        init=/usr/bin/procenv PROCENV_FILE=/dev/ttyS0 PROCENV_EXEC="/sbin/init --debug"

        # Display all data in JSON format using an indent of 4 spaces
        procenv --format=json --indent=4

        # Display all data in XML format using tabs for indents
        procenv --format=xml --indent-char="\t"

        # Display signal details in XML format
        procenv --format=xml --signals

        # Display resource limits in easily-parseable format
        procenv --format=crumb --limits

        # Produce output suitable for importing into a spreadsheet
        procenv --format=crumb --crumb-separator=',' --separator=',' --limits

        # Produce stylised output
        procenv --format=crumb --crumb-separator=' → ' --separator='='

LIMITATIONS

       ·   Spaces  within  the  value  of PROCENV_EXEC are treated as delimiters meaning that any
           spaces within a string argument for example will result in incorrect behaviour.

       ·   The separator character must be chosen carefully since no check is  performed  on  the
           data to see if it itself contains instances of the separator character.

AUTHORS

       Written by James Hunt <jamesodhunt@ubuntu.com> and Kees Cook <kees@ubuntu.com>.

COPYRIGHT

       Copyright © 2012-2016 James Hunt <jamesodhunt@ubuntu.com> and Kees Cook <kees@ubuntu.com>.
       This  is  free software; see the source for copying conditions.  There is NO warranty; not
       even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

LICENSE

       GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute it.  There is NO  WARRANTY,
       to the extent permitted by law.

SEE ALSO

       capabilities(7)  (Linux),  capsicum(4)  (BSD),  cc(1),  credentials(7),  date(1),  env(1),
       exec(P), getconf(1), groups(1), ifconfig(8), ip(9), ipcs(1), kill(1),  ldd(1),  locale(1),
       ls(1),  mount(1),  proc(5),  ps(1),  rights(4)(BSD),  sh(1),  stat(1),  stty(1), umask(P),
       uname(1)