Contents
procenv
is a simple command-line utility, written in C and licensed
under the GPL, that dumps all attributes of the environment [1] in which
it runs, in well-structured plain ASCII, JSON (YAML), XML or CSV.
It is useful as a test tool, to understand what environment a process runs in and for system comparison.
procenv
runs on the following operating systems:
- Android
- FreeBSD
- GNU Hurd
- GNU Linux
- Minix 3
- NetBSD
- OpenBSD
- OSX
It unashamedly emulates a number of existing system
utilities as it is attempting to be all-encompassing: I wrote it with
the aim of being able to dump "everything" that a process may care about
by simply running a single program (by default). Also, the line of
demarcation between "process", "program" and "system" is slightly
blurry in some aspects. For example sysconf(3)
variables could
arguably be considered system attributes, but procenv shows these too
since they are obviously meant to be queryable by applications.
[1] | If you find anything missing, please either raise a bug or send a patch :) |
procenv
is extremely useful for learning about the environment
software builds in. Often, such systems disallow login, but do allow
access to log files. Handily, procenv
runs a battery of tests on
build including running itself so that the build environment gets
captured in the builds logs themselves. Select a link below and drill
down to the build log to see the procenv
output:
- https://semaphoreci.com/jamesodhunt/procenv
(Click "Passed", "Job #", then "
make check
" to see output).
If you distro does not yet provide a procenv
package, binary
packages for RHEL, Fedora, Centos, SLES, and Arch Linux are available
from here:
Click on your icon for your distro and follow the instructions.
Note that these packages are "bleeding edge" (generated directly from the github repository).
Click the "twisty" triangle to the left of the release number under a
release name, then click one of the build links (like "amd64
)":
https://code.launchpad.net/~jamesodhunt/+recipe/procenv-daily
- http://autopkgtest.ubuntu.com/packages/p/procenv/
- Old Jenkins system
- https://jenkins.qa.ubuntu.com/view/Wily/view/AutoPkgTest/job/wily-adt-procenv/
- https://jenkins.qa.ubuntu.com/view/Vivid/view/AutoPkgTest/job/vivid-adt-procenv/
- https://jenkins.qa.ubuntu.com/view/Utopic/view/AutoPkgTest/job/utopic-adt-procenv/
- https://jenkins.qa.ubuntu.com/view/Trusty/view/AutoPkgTest/job/trusty-adt-procenv/
procenv
gets run from within sbuild via a DEP-8 test:
- http://autopkgtest.ubuntu.com/packages/s/sbuild/
- Old Jenkins system
procenv
gets run from within pbuilder via a DEP-8 test:
- http://autopkgtest.ubuntu.com/packages/p/pbuilder/
- Old Jenkins system
- https://admin.fedoraproject.org/pkgdb/package/rpms/procenv/ (click "Builds status", click a build, then click one of the "build logs" links).
Logs used to be available, but sadly it appears pointyhat.freebsd.com has been taken offline (any replacement?)
Can you help port procenv
to other platforms (AIX, HP-UX, Solaris,
...)? If so, please get in contact.
See http://ifdeflinux.blogspot.com/2012/10/procenv-and-process-environment.html
procenv
was written by James Hunt <[email protected]>.