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.
8a65a304e0
This change is largely based upon Justin's patch, I just moved the reset_ansi() parts out otherwise you get strange colour reset behaviours. Original patch message: I used the --no-linewrap (-w) option for the first time today, watching some wide output that didn't quite fit in my tmux pane. Quickly I noticed a problem: while --no-linewrap did indeed eliminate the spillover of lines too long for the terminal "window" width, it *also* resulted in a bunch of lines from the program output being hidden entirely. After some fiddling around, the exact problematic behavior appears to be as follows: 1. Lines which would have wrapped (more than $COLUMNS chars long) are handled correctly. 2. Lines which would *not* have wrapped (shorter than $COLUMNS) are printed; but then the next line is *not* printed! For long sequences of non-wrap-length lines, you get an every-other-line-is-visible sort of effect. The logic underlying the problem seems to be this: in the run_command loop, if the x loop goes all the way to completion (meaning we've reached the right-side edge of the window area), there's a small block of code for --no-linewrap whose main purpose is to call find_eol, which eats input until it hits a newline (or EOF). Clearly this is intended to be done for lines that are too long, so that the excess characters are discarded and the input pointer is ready to go for the subsequent line. However, this code isn't in any way conditional on the value of eolseen! Short/wouldn't-wrap lines will have encountered a newline character before exhausting the entire x loop, and therefore eolseen will be true. Long/would-wrap lines will not have encountered a newline when the x loop is exhausted, and so eolseen will be false. Nevertheless, find_eol is called in *both* cases. For long lines, it does what it's meant to do. For short lines, *the newline has already been encountered and dealt with*, and so the actual effect of find_eol is to eat the entirety of the next line, all the way through to its newline, such that it isn't printed at all. References: procps-ng/procps!157 Signed-off-by: Craig Small <csmall@dropbear.xyz> |
||
---|---|---|
doc | ||
library | ||
local | ||
man | ||
po | ||
po-man | ||
src | ||
testsuite | ||
.gitignore | ||
.gitlab-ci.yml | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
COPYING.LIB | ||
create-man-pot.sh | ||
INSTALL.md | ||
Makefile.am | ||
NEWS | ||
README.md | ||
sysctl.conf | ||
translate-man.sh |
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:
- Your distribution's 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.
- GitLab Issues - To the left of this page is the issue tracker. You can report bugs here.
- 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.