User Commands
2016-03-10
procenv
Utility to show process environment
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 \(aq(*)\(aq 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=\(aq:\(aq). | |||||||||||
-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:
|
|||||||||||
-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=\(aq \(aq (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:
|
|||||||||||
-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=\(aq: \(aq). | |||||||||||
-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
o | Options are considered in order, so --output should precede any other option. |
o | If no display option is specified, all details are displayed. |
o | Only one display option may be specified. |
o | Command-line options take priority over environment variables. |
o | All values for --indent-char are literal except \(aq\t\(aq 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. |
o | Specifying a visible indent-char is only (vaguely) meaningful for text output. |
o | If --exec is specified, atleast one non-option argument must also be specified. |
o | Any long option name may be shortened as long as it remains unique. |
o | 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. |
o | 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=\(aq,\(aq --separator=\(aq,\(aq --limits
# Produce stylised output
procenv --format=crumb --crumb-separator=\(aq [u2192] \(aq --separator=\(aq=\(aq
LIMITATIONS
o | 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. |
o | 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> and Kees Cook <kees>.
COPYRIGHT
Copyright © 2012-2016 James Hunt <jamesodhunt> and Kees Cook <kees>.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
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.
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)
(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)