Fork 0

2.7 KiB


cpulimit wrapper for limiting CPU of multiple processes

Example usage:

./cpulimit-all.sh --limit=1 -e firefox -e firefox-esr -e chromium -e chrome\
    --watch-interval 0 --max-depth=1

Limit CPU of all currently running browser processes to 1%, but do not watch for new processes.

Usage: ./cpulimit-all.sh [TARGET] [OPTIONS...] [-- PROGRAM]
   TARGET may be one or more of these (either TARGET or PROGRAM is required):
      -p, --pid=N        pid of a process
      -e, --exe=FILE     name of a executable program file
      -P, --path=PATH    absolute path name of a
                         executable program file
   OPTIONS for ./cpulimit-all.sh
          --max-depth=N  If 0, only target explicitly referenced processes.
                         Otherwise, target subprocesses up to N layers deep.
                         Maximum number of processes to limit. After this
                         limit is reached, new processes will be limited
                         as old ones die.
                         If 0, targets will be selected at setup. Otherwise,
                         every INTERVAL (argument to sleep(1)), search for
                         more possible targets.
                         During setup, delay INTERVAL (argument to sleep(1))
                         between searches for more subprocesses to avoid
                         spending 100% CPU searching for targets.
          --             This is the final ./cpulimit-all.sh option. All following
                         options are for another program we will launch.
      -h, --help         display this help and exit
   OPTIONS forwarded to CPUlimit
      -c, --cpu=N        override the detection of CPUs on the machine.
      -l, --limit=N      percentage of cpu allowed from 1 up.
                         Usually 1 - 800, but can be higher
                         on multi-core CPUs (mandatory)
      -q, --quiet        run in quiet mode (only print errors).
                         (Also suppresses messages from ./cpulimit-all.sh.)
      -k, --kill         kill processes going over their limit
                         instead of just throttling them.
      -r, --restore      Restore processes after they have
                         been killed. Works with the -k flag.
      -s, --signal=SIG   Send this signal to the watched process when cpulimit exits.
                         Signal should be specificed as a number or
                         SIGTERM, SIGCONT, SIGSTOP, etc. SIGCONT is the default.
      -v, --verbose      show control statistics