Result of find_by_name_for_uid: matches owned by the requested uid,
plus a count of matches owned by other users (so the caller can tell “no
such process” apart from “that process belongs to someone else”).
List processes owned by uid. A cheap stat() pre-filter (comparing the
/proc/<pid> directory’s owning uid) skips reading any file belonging to
another user’s process before read_process opens status/stat/exe.
The start time (field 22, clock ticks after boot) from the text of
/proc/<pid>/stat. The comm field is in parentheses and may itself hold
spaces or ‘)’, so fields are counted from the last ‘)’.
Read the full ProcessInfo snapshot for one pid. status is required
(its Uid:/Name: fields anchor the snapshot); stat, exe, and
cgroup are each best-effort and simply left at their default/None if
unreadable (e.g. the process exited mid-read, or exe requires
permissions we don’t have). Returns None only if status can’t be read
or parsed.