* tload: add basic tui layout of modern look
* tload: set x-axis bound from 0 to the width of terminal
* tload: fix mismatched returning type
* tload: add `#[allow(clippy::cognitive_complexity)]`
* tload: add by-utils test
* tload: tweaks for max height of chart
* tload: bump version of `ratatui` from `0.28` to `0.29`
* tload: fix typo
* tload: set exit code to 130
* tload: fix typo
* tload: add license header for `tui.rs`
Apparently the signal masks in /proc/status are off-by-one, ie. bit 0
represents signal 1. In original pgrep signal 0 results in matching
signal 64 so replicate this behaviour also.
Unlike pidof's similar option, the pgrep version will run the match
predicates against every thread of the system and printing matching
tids (unlike pidof which will run match predicates on every process of
the system and then list every thread of every matched process).
Currently pgrep/pkill without -x/-f flags is matching based on the first
15 characters of /proc/<pid>/stat, which actually contains something like
"1116878 (cat) R" thus matching the process id when it should just match
on the name.
This has probably come from misunderstanding the comment from manpage:
> The process name used for matching is limited to the 15 characters
> present in the output of /proc/pid/stat.
... which doesn't mean pgrep/pkill is literally matching on 15
characters of /proc/<pid>/stat but that the process name in that file is
truncated to 15 characters.
Fixes#307
pidwait already has a check for this, copy it to the common
process_matcher implementation.
Some tests need adjustment to not use such long fake names.
This is not listed in pgrep --help, but is documented in the man page
and does work. Unlike pkill the -SIGNAL short option is not supported by
pgrep.
Simplify parse_signal_value with ok_or_else
pkill --help doesn't list this option, but it is listed in the manpage
(and does work). Unlike pgrep, the short option '-v' doesn't exists for
pkill though.