procenv man page

procenv — display process environment details


procenv [OPTION]


Display details of the process environment in a parseable format.


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:


Alternative to --crumb-separator.


Alternative to --exec.


Alternative to --file.


Alternative to --file-append.


Alternative to --format.


Alternative to --indent.


Alternative to --indent-char.


Alternative to --separator.


Alternative to --output.



 # 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='='



Written by James Hunt <> and Kees Cook <>.


GNU GPL version 3 or later <>.
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)


2016-03-10 User Commands