You may want to check list-processes
:
list-processes
is an interactive compiled Lisp function in
‘simple.el
’.
(list-processes &optional QUERY-ONLY BUFFER)
Display a list of all processes that are Emacs sub-processes.
If optional argument QUERY-ONLY
is non-nil, only processes with
the query-on-exit
flag set are listed.
Any process listed as exited or signaled is actually eliminated
after the listing is made.
Optional argument BUFFER
specifies a buffer to use, instead of
"*Process List*
".
The return value is always nil
.
This function lists only processes that were launched by Emacs. To
see other processes running on the system, use ‘list-system-processes
’.
It seems to miss a lot of features you need, but with a bit coding you may get the desired results (if you do so, please send your patches upstream, I’d occasionally like to see this feature in Emacs.) That said, I couldn’t find any better ready-made candidates to your problem.