Daemon Count Calculator
Compare running vs. enabled systemd daemons and estimate per-daemon resource overhead.
Inputs
Estimated Total Daemon RSS (MB)
684.0
Running as % of Enabled
84.4%
Enabled but Not Running
7
Note
7 enabled daemons aren't currently running (may be one-shot/oneshot-type units, conditionally-started, or failed) — check with `systemctl list-units --all --state=inactive`.
Step by step
Values used
Enabled Daemons/Services = 45; Currently Running Daemons/Services = 38; Average RSS per Daemon (MB) = 18
Estimated total daemon memory
total_rss = running_daemons × avg_rss_per_daemon
Estimated Total Daemon RSS (MB)
= 684.0
Running as % of Enabled
= 84.4
Enabled but Not Running
= 7
Note
= 7 enabled daemons aren't currently running (may be one-shot/oneshot-type units, conditionally-started, or failed) — check with `systemctl list-units --all --state=inactive`.
How it works
'Enabled' (systemctl is-enabled) means a unit is configured to start automatically at boot; 'running' (systemctl is-active) means it's actually active right now — the two lists commonly diverge because of oneshot-type units (which run once and exit successfully, e.g. one-time setup tasks), condition-gated units (After=/ConditionPathExists= etc. that only start under specific circumstances), or units that failed to start. Estimating aggregate RSS across running daemons (average per-daemon footprint × running count) gives a rough baseline memory cost of 'always-on background services' separate from application workload memory, useful for right-sizing minimal-footprint systems or containers.
Formula
Estimated total daemon memory
total_rss = running_daemons × avg_rss_per_daemon
- n_{run}
- currently running daemon count
- "\\bar{r}"
- average RSS per daemon
Frequently Asked Questions
Why would a service be 'enabled' but not currently 'active'?
Common reasons: it's a oneshot-type unit that runs once at boot and legitimately exits (RemainAfterExit=no), it's gated by a condition that isn't currently satisfied, it depends on a socket/timer and is only activated on demand (socket or timer activation), or it crashed/failed to start and hit its restart limit — `systemctl status <unit>` shows the specific reason.
How do I list all enabled services on a system?
`systemctl list-unit-files --state=enabled` lists every unit file configured to start at boot, while `systemctl list-units --type=service --state=running` shows what's actually active right now — comparing the two surfaces exactly which enabled services aren't currently running.
Is reducing the number of enabled daemons a good way to save resources?
It can help on memory-constrained systems or minimal container/VM images, but weigh it against functionality lost — disabling something like a logging daemon or security agent saves a modest amount of RAM at the cost of losing its function. Profile actual per-daemon RSS via `systemd-cgtop` or `ps` before deciding which are worth disabling.
You might also need
- Background Process CalculatorCommonly used together
- Service Restart Delay CalculatorCommonly used together
- System Uptime CalculatorCommonly used together
- Signal Delivery Time CalculatorCommonly used together
- systemd Service Dependency CalculatorCommonly used together
- Process Count CalculatorCommonly used together