Command line and full screen utilities for browsing procfs, a "pseudo" file system dynamically generated by Linux to provide information about the status of entries in its process table.
Go to file
Jim Warner 40883a0b85 library: minimize the use of 'cleanup_stacks' routines
Some parts of our newlib implementation are the result
of functions which have been propagated from module to
module. In particular, those 'cleanup_stacks' routines
are all similar & likely originated in the <pids> api.

In that interface there was a need to free dynamically
acquired memory before the result structure was reused
to satisfy subsequent 'get', 'select' or 'reap' calls.
This, in turn, led to a concept of 'dirty' stacks with
the need to call one of two 'cleanup_stack' functions.

None of the remaining interfaces deal with such memory
yet they each had their own 'cleanup_stack' functions.
Those functions were responsible for resetting each of
the result unions to zero, excluding any 'noop' items.

The bottom line is that for all interfaces, repetitive
calls would require iterating through the stack(s) two
separate times: once to 'cleanup' another to 'assign'.

With this commit we will reduce iterations to just the
'assign' routine. A reset to zero will be accomplished
in the 'extra' item set routine (which is the only one
actually requiring any reset). All other items will be
reinitialized automatically by a new current set value
or upon reallocation when an items compliment changes.

In the <pids> interface, any freeing of dynamic memory
could have been accomplished by adding that 'freefunc'
check to the 'assign' function. However, that requires
an Item_table test with every item. Instead, we'll now
satisfy such needs as the very first step in those set
functions responsible for dynamically acquired memory.

[ the <pids> api retains 2 'cleanup_stack' functions ]
[ to accommodate stack(s) 'reset' & to serve 'unref' ]

Lastly, all the 'itemize_stack' functions were tweaked
by eliminating an unnecessary initialization of result
unions. That objective was already accomplished by the
calloc() in a 'stacks_alloc' function or the remaining
'cleanup_stack' routine found in the <pids> interface.

Signed-off-by: Jim Warner <james.warner@comcast.net>
2019-07-04 20:46:18 +10:00
contrib
doc documentation: Update pids manual pages 2017-01-05 09:44:04 +11:00
Documentation miscellaneous: remove some trailing whitespace buildup 2015-06-20 07:46:23 +10:00
include Build fails if not done from the source root directory (#105) 2018-08-08 20:03:16 +10:00
lib procio: fix potential out-of-bounds access when write fails 2019-03-04 21:55:07 +11:00
man-po misc: Tell po4a to handle email macros 2018-06-23 21:59:14 +10:00
misc
po update translations _______________________ (catch up) 2018-05-06 07:19:38 +10:00
proc library: minimize the use of 'cleanup_stacks' routines 2019-07-04 20:46:18 +10:00
ps misc: adapted programs impacted by header file changes 2019-03-26 19:55:30 +11:00
testsuite misc: fix ps etime tests 2018-05-03 21:13:16 +10:00
top top: just correct a couple of misspellings in comments 2019-03-26 19:55:30 +11:00
.gitignore misc: Update translations _________________ (catch up) 2018-05-06 07:19:38 +10:00
.gitlab-ci.yml test: Update gitlab CI YAML to use shared runner 2016-04-20 22:20:55 +10:00
AUTHORS
autogen.sh
ChangeLog
configure.ac Port of merge request 49 to newlib 2017-08-19 23:05:22 +10:00
COPYING
COPYING.LIB
create-man-pot.sh misc: Update translations _________________ (catch up) 2018-05-06 07:19:38 +10:00
free.1 watch,free: interpet intervals in non-locale way 2016-07-03 16:20:48 +10:00
free.c misc: adapted programs impacted by header file changes 2019-03-26 19:55:30 +11:00
INSTALL.md
kill.1
kill.c 0022-skill: Simplify the kill_main() loop. 2018-06-23 21:59:14 +10:00
Makefile.am 3.3.13 release candidate 1 ________________ (catch up) 2018-05-06 07:19:38 +10:00
NEWS misc: Move NEWS item to correct version 2018-05-06 09:55:56 +10:00
pgrep.1 pgrep.c: Match based on process run state for issue 109 2019-03-20 20:59:00 +11:00
pgrep.c pgrep.c: Match based on process run state for issue 109 2019-03-20 20:59:00 +11:00
pidof.1 docs: Note limitation of pidof find scripts (catch up) 2018-05-06 07:19:38 +10:00
pidof.c 0020-pidof: Prevent integer overflows with grow_size(). 2018-06-23 21:59:14 +10:00
pkill.1
pmap.1
pmap.c 0095-pmap: Fix extended mode in one_proc(). 2018-06-23 21:59:14 +10:00
pwdx.1
pwdx.c 0021-pwdx: Fix a misleading comment. 2018-06-23 21:59:14 +10:00
README.md misc: eliminate accumulated trailing whitespace, again 2016-03-12 14:53:53 +11:00
skill.1
skill.c 0027-skill: Prevent multiple overflows in ENLIST(). 2018-06-23 21:59:14 +10:00
slabtop.1 procps: Add a zero-width break point in slabtop.1 2015-06-01 22:04:40 +10:00
slabtop.c misc: adapted programs impacted by header file changes 2019-03-26 19:55:30 +11:00
snice.1
sysctl.8 docs: sysctl.8 clarify when w flag is required 2018-02-19 21:07:21 +11:00
sysctl.c sysctl: do not report set key in case close_stream fails 2019-03-04 21:55:24 +11:00
sysctl.conf misc: Add some link examples to sysctl.conf (catch up) 2018-05-06 07:19:38 +10:00
sysctl.conf.5 misc: remove some newly introduced trailing whitespace 2016-09-26 07:40:45 +10:00
tload.1
tload.c 0015-tload: Prevent integer overflows of ncols, nrows, and scr_size. 2018-06-23 21:59:14 +10:00
translate-man.sh
uptime.1
uptime.c 0009-uptime: Check the return value of various functions. 2018-06-23 21:59:14 +10:00
vmstat.8
vmstat.c misc: adapted programs impacted by header file changes 2019-03-26 19:55:30 +11:00
w.1 w: correct program help & man page regarding arguments 2015-09-07 18:11:48 +10:00
w.c 0121-w: Clamp maxcmd to the MIN/MAX_CMD_WIDTH range. 2018-06-23 21:59:14 +10:00
watch.1 docs: Reword --exec option in watch.1 _____ (catch up) 2018-05-06 07:19:38 +10:00
watch.c watch: use sysconf() for hostname length __ (catch up) 2018-05-06 07:19:38 +10:00

build status procps

procps is a set of command line and full-screen utilities that provide information out of the pseudo-filesystem most commonly located at /proc. This filesystem provides a simple interface to the kernel data structures. The programs of procps generally concentrate on the structures that describe the processess running on the system.

The following programs are found in procps:

  • free - Report the amount of free and used memory in the system
  • kill - Send a signal to a process based on PID
  • pgrep - List processes based on name or other attributes
  • pkill - Send a signal to a process based on name or other attributes
  • pmap - Report memory map of a process
  • ps - Report information of processes
  • pwdx - Report current directory of a process
  • skill - Obsolete version of pgrep/pkill
  • slabtop - Display kernel slab cache information in real time
  • snice - Renice a process
  • sysctl - Read or Write kernel parameters at run-time
  • tload - Graphical representation of system load average
  • top - Dynamic real-time view of running processes
  • uptime - Display how long the system has been running
  • vmstat - Report virtual memory statistics
  • w - Report logged in users and what they are doing
  • watch - Execute a program periodically, showing output fullscreen

Reporting Bugs

There are a few ways of reporting bugs or feature requests:

  1. Your distributions bug reporter. If you are using a distribution your first port of call is their bug tracker. This is because each distribution has their own patches and way of dealing with bugs. Also bug reporting often does not need any subscription to websites.
  2. GitLab Issues - To the left of this page is the issue tracker. You can report bugs here.
  3. Email list - We have an email list (see below) where you can report bugs. The problem with this method is bug reports often get lost and cannot be tracked. This is especially a big problem when its something that will take time to resolve.

If you need to report bugs, there is more details on the Bug Reporting page.

Email List

The email list for the developers and users of procps is found at http://www.freelists.org/archive/procps/ This email list discusses the development of procps and is used by distributions to also forward or discuss bugs.