This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

2026-09-27 — The kill-by-search reading follows a search into and out of shell strings, and keeps one over-block, recorded so it is not mistaken for a defect (lane drainG2, autonomous run A, on iss-2609262259360005 and the review of the first reading). Every command of a string that `xargs` runs is read as handed xargs's input, so `pgrep make | xargs sh -c 'kill 4242'` blocks as `kill-by-search` though its kill names a pid: `xargs -I{}` replaces the input into any part of the string, and telling a command that reads `"$@"` or `$1` from one that does not would be a text match on the string, which the feed mechanism does not make. The same holds for the standard input a shell passes to the commands of its string (`pgrep make | sh -c 'xargs kill'`). The accepted over-block of the first reading, that a lower-case signal name (`pkill -term -g <pgid>`) blocked as `pkill-by-owner` because its letters read as the `-t` and `-u` selectors, is removed rather than recorded: `pkill`'s first `-NAME` word naming a signal is read as its signal, in any case and with or without `SIG`, as procps-ng and BSD pkill read it, which is also what lets `-U` and `-G` be read attached (`pkill -Ubob`) without taking `-HUP`, `-USR1` or `-SIGTERM` for them. Only the first such word is the signal, so `pkill -9 -term -g <pgid>` still blocks: both implementations hand the second word to their option parser as `-t erm`. `killall` is not read this way, because psmisc killall reads a signal name only when it begins with a capital letter and parses `killall -term` as `killall -t erm`.

decisiondcn-2609270000000001

2026-09-27 — The kill-by-search reading follows a search into and out of shell strings, and keeps one over-block, recorded so it is not mistaken for a defect (lane drainG2, autonomous run A, on iss-2609262259360005 and the review of the first reading). Every command of a string that xargs runs is read as handed xargs's input, so pgrep make | xargs sh -c 'kill 4242' blocks as kill-by-search though its kill names a pid: xargs -I{} replaces the input into any part of the string, and telling a command that reads "$@" or $1 from one that does not would be a text match on the string, which the feed mechanism does not make. The same holds for the standard input a shell passes to the commands of its string (pgrep make | sh -c 'xargs kill'). The accepted over-block of the first reading, that a lower-case signal name (pkill -term -g <pgid>) blocked as pkill-by-owner because its letters read as the -t and -u selectors, is removed rather than recorded: pkill's first -NAME word naming a signal is read as its signal, in any case and with or without SIG, as procps-ng and BSD pkill read it, which is also what lets -U and -G be read attached (pkill -Ubob) without taking -HUP, -USR1 or -SIGTERM for them. Only the first such word is the signal, so pkill -9 -term -g <pgid> still blocks: both implementations hand the second word to their option parser as -t erm. killall is not read this way, because psmisc killall reads a signal name only when it begins with a capital letter and parses killall -term as killall -t erm.

Frontmatter

iddcn-2609270000000001
typedecision
date2026-09-27

mentions2