There's nice and renice to lower priority of a process, cpulimit to lets say 30% maximum, taskset to limit to 1 core, ionice. Each of these tools has a different syntax. Specifically cpulimit seems harder to master. Syntax isn't trivial. Writing this for multiple tasks (on a server) would be a lot work.
nice alone does not solve it. If I run for example nice -n19 stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s on my desktop system, it helps, but it is still less responsive until that process finishes.
Would be useful for tasks (such as backups) that require a lot of CPU / IO where it does not matter if these finish in 5 seconds, 5 minutes or 30 minutes. More important is not to take away CPU shares from more important processes.
Before re-inventing all of that...
Is there a linux shell wrapper script to run programs with low system resources that covers all or most of above?