<div dir="ltr">Hi folks,<div><br></div><div>  We are working on an embedded ARM Cortex A9 based system (aka low CPU). It runs on a custom linux based operating system which uses systemd.</div><div><br></div><div>  We have a bunch of daemons (around ~50+) that come up during boot simultaneously which slows down the boot significantly as the CPU runs out of breath. We were thinking of staggering these daemons into 2 groups. The first group containing "critical" daemons (around 15) so that they finish faster and make the system usable sooner. Followed by the second group of daemons.</div><div><br></div><div>   Separating daemons into buckets could be done using: </div><div>1) systemd targets: Introduce 2 new targets and classify the services/daemons into them. Layer these targets during boot.</div><div>2) Cgroups: Create a new systemd slice and put all the "critical" services into it. Allocate sufficient CPUShares value to the slice so that this slice gets its due CPU% to finish faster boot.</div><div><br></div><div>Can you please suggest which of the above is a better approach? Respective pros/cons with each.</div><div><br></div><div>Or if there is a third approach better than the above?</div><div><br></div><div>Thanks in advance,<br></div></div>