[systemd-devel] coredumpctl: matching by e.g. env var?

Stephan Bergmann sbergman at redhat.com
Tue Mar 28 06:13:39 UTC 2023


On 27/03/2023 13:38, Lennart Poettering wrote:
> another idea: can't you just wrap your tests in "systemd-run --scope
> --user --name=somtestid47110815.scope" or so? we pick up unit
> names in coredump handling. With that you'd run yur tests inside a
> scope unit, and can then use that as key in logs+coredump.

Thanks, that looks useful, `systemd-run --scope --user --unit=... ...` 
and `coredumpctl debug COREDUMP_USER_UNIT=....scope ...`.

* Is it guaranteed for system-run --scope that the wrapped command will 
run in the surrounding process group?  (Because LibreOffice' Jenkins 
relies on a single process group for a whole `make check` to reliably 
kill stuck builds.  And it looks like systemd-run --scope is just a 
lightweight wrapper that then exec's the command in the same process, 
which looks promising.)

* Is there a grammar for those --unit=X resp. 
COREDUMP_USER_UNIT=X'.scope values?  I noticed that at least "/" in X 
gets replaced with "-" in X'.  Is there a length limit?

* Is there a direct way to run `coredumpctl debug 
COREDUMP_USER_UNIT=....scope ...` on all matching core dumps, not just 
the most recent one?  (I figured I need to prepare a list with 
`coredumpctl --json=short list COREDUMP_USER_UNIT=....scope | jq -r 
'map(select(.corefile="present"))|map(.pid)|join(" ")' first, and then 
iterate over it with `coredumpctl debug COREDUMP_USER_UNIT=....scope 
COREDUMP_PID="$i" ...`)



More information about the systemd-devel mailing list