Calculate combined resource footprint of background processes running via nohup or &.
Processes started with `nohup command &` or detached from the shell via `disown` keep running after the launching terminal session ends, since nohup blocks SIGHUP from reaching them and disown removes them from the shell's job table — but they remain ordinary processes consuming real memory and CPU, just without a visible controlling terminal or easy `jobs`-based tracking. Summing their estimated footprint (count × average RSS, count × average CPU%) gives a rough resource allocation figure, which is also a useful prompt to consider whether ad-hoc background processes should instead be proper supervised services (systemd units, or a task queue) with defined resource limits and restart behavior.
Total background resource footprint
total_rss = count × avg_rss; total_cpu_cores = (count × avg_cpu%) / 100
nohup launches a process with SIGHUP ignored from the start, so it survives the terminal closing even if you never manually detach it. disown instead removes an already-running background job from the current shell's job table (so the shell no longer sends it SIGHUP on exit), typically used on a job you started with `&` and later decide should survive the session ending.
There's no dedicated tracking mechanism — since these are just ordinary processes without a controlling terminal, `ps -eo pid,tty,cmd | grep '?'` (TTY shown as '?') is a reasonable heuristic to surface terminal-less processes, though it also catches legitimately daemonized services, not exclusively ad-hoc background jobs.
These processes have no supervision — if they crash, nothing restarts them; if the system reboots, they're gone with no automatic recovery; and there's no built-in resource limiting or centralized logging. A systemd service (or a proper job queue/task runner) provides restart policies, resource limits (via cgroups), and log integration that ad-hoc background processes lack entirely.