Commit Graph

3730 Commits

Author SHA1 Message Date
Craig Small
fa389631ca build-sys: Make pwait test dependent on pwait built
As pwait building is conditional, testsuite should
only run pwait tests if there is a pwait binary.
2020-12-22 15:21:39 +11:00
Craig Small
2c7b575099 build-sys: Make pwait test dependent on pwait built
As pwait building is conditional, testsuite should
only run pwait tests if there is a pwait binary.
2020-12-22 15:20:30 +11:00
Craig Small
dbc65b1ac8 misc: Add pwait to news
New command, pwait! Waits for another process to finish just like
pgrep finds or pkill kills another process.

References:
 procps-ng/procps!97
2020-12-22 15:17:58 +11:00
Craig Small
02a55381ad build-sys: Change pwait dependency
master branch uses lib/nsutils, newlib uses lib/signals

References:
 commit c8384e682c
2020-12-22 15:16:01 +11:00
Craig Small
68f0941433 Merge branch 'awilfox/procps-utmpx-support'
References:
 procps-ng/procps!67
2020-12-22 15:09:08 +11:00
Craig Small
e0a02f7989 Merge branch 'awilfox/procps-utmpx-support'
References:
 procps-ng/procps!67
2020-12-22 14:59:47 +11:00
A. Wilcox
3c1fed7d65 w: Use POSIX <utmpx.h> functions where available
<utmp.h> has been deprecated since 2001 in favour of <utmpx.h>.

On glibc systems, utmp is just an alias to utmpx, so there is no
functional change using one over the other.

However, on the musl libc, a library (utmps) can be used to provide
utmpx functionality - but not utmp.  This means that procps either
doesn't work properly (`w` shows nothing under musl with default no-op
implementation), or fails to build (utmps provides utmpx.h but no
utmp.h).

This commit will use utmpx.h where available, which allows `w` to work
correctly with utmps and has no change on glibc systems.
2020-12-22 14:59:15 +11:00
Craig Small
5a9c978f8a Merge branch 'teknoraver/procps-master'
References:
 procps-ng/procps!83
2020-12-22 14:36:09 +11:00
Craig Small
bf92199ccb Merge branch 'teknoraver/procps-master'
References:
 procps-ng/procps!83
2020-12-22 14:32:26 +11:00
Craig Small
c2e69b34a7 NEWS: Add notice for pidof -q 2020-12-22 14:32:03 +11:00
Matteo Croce
b067ecc886 pidof: allow to suppress output
Often pidof is used in shell scripts in this form:

    if pidof daemon >/dev/null; then
        ...
    fi

The redirection to /dev/null is needed because otherwise the script
would output the found PIDs.
Let's add a -q option which, similary to grep, just sets the exit code.
Also exit on first match, as there is no reason to proceed further when
at least a process is matched.

Tested with:

    $ ./pidof bash
    17701 14019 5276 2967
    $ echo $?
    0
    $ ./pidof bashx
    $ echo $?
    1
    $ ./pidof -q bash
    $ echo $?
    0
    $ ./pidof -q bashx
    $ echo $?
    1
2020-12-22 14:31:17 +11:00
Craig Small
6bbb0bfc80 pgrep: fix missed change
I missed one change from the commit in the master branch meaning
pgrep would not compile.

References:
 commit c8384e682c
2020-12-22 14:25:56 +11:00
Raphaël Jakse
79097e55e4 kill: Fix argument handling for negative PIDs 2020-12-22 03:16:47 +00:00
Craig Small
a55946a7a3 misc: Add watch extra colours to NEWS 2020-12-22 14:13:45 +11:00
Nipunn Koorapati
418631d7f3 Supporting bright colors with ncurses 2020-12-22 14:12:32 +11:00
Nipunn Koorapati
7c64daa095 Add comments and limit to standard colors 2020-12-22 14:10:11 +11:00
Nipunn Koorapati
64d35921ba bugfix - increment endpointer when parsing color_escape_sequence 2020-12-22 14:08:50 +11:00
Craig Small
5c55464aab Merge branch 'nipunn1313/procps-watch_colors2'
References:
 procps-ng/procps!109
2020-12-22 13:54:50 +11:00
Nipunn Koorapati
3549f49df0 Supporting bright colors with ncurses 2020-12-22 13:53:04 +11:00
Nipunn Koorapati
a23c941d8b Support simple 8 bit ansi escape sequences
See https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
Support standard and high intensity colors. The default
ncurses colors ARE the high intensity colors - represented
via an 8 bit ansi escape sequence here.
2020-12-22 13:53:00 +11:00
Craig Small
6285bdd3b5 Merge branch 'nipunn1313/procps-watch_colors'
References:
 procps-ng/procps!106
2020-12-22 13:48:15 +11:00
Nipunn Koorapati
ffa556633f Spaces to tabs 2020-12-22 13:44:54 +11:00
Nipunn Koorapati
a3a5db1311 Add comments and limit to standard colors 2020-12-22 13:43:30 +11:00
Nipunn Koorapati
8d0928f072 bugfix - increment endpointer when parsing color_escape_sequence 2020-12-22 13:43:30 +11:00
Nipunn Koorapati
486a3e30e1 Support simple 8 bit ansi escape sequences
See https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
Support standard and high intensity colors. The default
ncurses colors ARE the high intensity colors - represented
via an 8 bit ansi escape sequence here.
2020-12-22 13:43:25 +11:00
Craig Small
e2470edc8c Merge branch 'antonblanchard/procps-proc-stat-buffer'
References:
 procps-ng/procps!105
2020-12-22 13:18:58 +11:00
Anton Blanchard
1b9ea61116 Increase BUFFSIZE to handle very large /proc/stat files
We read /proc/stat using a statically sized buffer. This was increased
to 64kB in 2005 via commit 777fcd3cf1 "/proc/stat for 1024 CPUs".

Unfortunately in 2020, 1024 CPUs is not enough for anyone. I have a
large machine where /proc/stat is 74kB, and vmstat gives incorrect
output.

Double the buffer to 128kB in the confidence that 2048 CPUs is actually
enough for anyone.

Signed-off-by: Anton Blanchard <anton@ozlabs.org>
2020-12-22 13:18:44 +11:00
Craig Small
4825797d97 testsuite: Add pwait tests
They're pretty simple tests but its something.

References:
  commit 09327c2b77
2020-12-22 13:14:02 +11:00
Alex Xu (Hello71)
c8384e682c pgrep: add pwait 2020-12-22 13:13:32 +11:00
Craig Small
4a54ae97a0 testsuite: Add pwait tests
They're pretty simple tests but its something.

References:
  commit 09327c2b77
2020-12-22 12:25:44 +11:00
Craig Small
980983db74 Merge branch 'alxu/procps-pwait'
New command, pwait! Waits for another process to finish just like
pgrep finds or pkill kills another process.

References:
 procps-ng/procps!97

Signed-off-by: Craig Small <csmall@dropbear.xyz>
2020-12-22 12:16:09 +11:00
Alex Xu (Hello71)
09327c2b77 pgrep: add pwait 2020-12-22 12:09:16 +11:00
Craig Small
03fac47bd2 Merge branch 'nipunn1313/procps-spaces_to_tabs'
References:
 procps-ng/procps!108
2020-12-22 11:55:10 +11:00
Nipunn Koorapati
5d155068ce Convert spaces to tabs in watch.c 2020-12-22 11:54:52 +11:00
Nipunn Koorapati
9f33a6bcd0 watch: Support wide char ncurses on mac with enable-watch8bit
Fixes #47
2020-12-22 11:53:12 +11:00
Craig Small
9c4ad4c419 Merge branch 'nipunn1313/procps-configure_ncurses'
Macs have the wide stuff in the ncurses (not ncursesw) library.

References:
 procps-ng/procps!110
 procps-ng/procps#47
2020-12-22 11:45:47 +11:00
Nipunn Koorapati
e0f47aab1c watch: Support wide char ncurses on mac with enable-watch8bit
Fixes #47
2020-12-22 11:45:20 +11:00
Samanta Navarro
9b0c5dd00b misc: fix typos in manual pages
Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
2020-12-22 11:40:23 +11:00
Samanta Navarro
b0c8e3408b misc: fix typos in manual pages
Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
2020-12-22 00:37:29 +00:00
Jan Rybar
1a66433371 pkill manpage to document '-e' option 2020-12-22 11:36:47 +11:00
Jan Rybar
584c65ba37 pkill manpage to document '-e' option 2020-12-22 00:30:50 +00:00
Craig Small
ffcf9aa394 build-sys: Remove refs to old manpage
I removed the old man pages but didn't remove their references in
the Makefile

References:
 commit a978f68c06
 commit 770505ded4
 commit 7246249b8c
2020-12-22 11:27:17 +11:00
Jan Rybar
b568f9f2b7 pidof: new option to show cmdline-less PIDs (kernel workers), empty input fixed 2020-12-22 11:26:42 +11:00
Jan Rybar
bf6c096dbd pidof: new option to show cmdline-less PIDs (kernel workers), empty input fixed 2020-12-22 00:14:41 +00:00
Stephen Brennan
518547742b Set TZ to avoid repeated stat("/etc/localtime")
With glibc, each time the strftime() function is used (twice per process
in a typical ps -fe run), a stat("/etc/localtime") system call is used
to determine the timezone. Not only does this add extra system call
overhead, but when multiple ps processes are trying to access this
file (or multiple glibc programs using strftime) in parallel, this can
trigger significant lock contention within the OS kernel.

Since ps is not intended to run for long periods of time as a
daemon (during which the system timezone could be altered and PS might
reasonably be expected to adapt its output), there is no benefit to
repeatedly doing this stat(). To stop this behavior, explicitly set the
TZ variable to its default value (:/etc/localtime) whenever it is unset.
glibc will then cache the stat() result.
2020-12-22 11:09:44 +11:00
Craig Small
a04ea67d6f Merge branch 'brenns10/procps-master'
References:
 procps-ng/procps!119
2020-12-22 11:08:52 +11:00
Stephen Brennan
31343570e1 Set TZ to avoid repeated stat("/etc/localtime")
With glibc, each time the strftime() function is used (twice per process
in a typical ps -fe run), a stat("/etc/localtime") system call is used
to determine the timezone. Not only does this add extra system call
overhead, but when multiple ps processes are trying to access this
file (or multiple glibc programs using strftime) in parallel, this can
trigger significant lock contention within the OS kernel.

Since ps is not intended to run for long periods of time as a
daemon (during which the system timezone could be altered and PS might
reasonably be expected to adapt its output), there is no benefit to
repeatedly doing this stat(). To stop this behavior, explicitly set the
TZ variable to its default value (:/etc/localtime) whenever it is unset.
glibc will then cache the stat() result.
2020-12-22 11:08:36 +11:00
ivan tkachenko
96f8f3532c docs: Consistent style across watch.1 2020-12-22 11:04:50 +11:00
Craig Small
930dad118e Merge branch 'ratijas/procps-man-watch'
References:
 procps-ng/procps!121
2020-12-22 11:03:57 +11:00
ivan tkachenko
bfaa431052 docs: Consistent style across watch.1 2020-12-22 11:02:58 +11:00