reniced
Habe heute ein einfaches script geschrieben, welches laufende Prozesse auf Linux-Systemen anhand von Suchmustern mit einer neuen Priorität versieht. Das ganze ist vorallem dann nützlich wenn man Prozessen eine Priorität zuweisen will, welche sich nicht ohne weiteres direkt mit einer speziellen Priorität starten lassen.
Folgenden code einfach in eine neue Datei “reniced” speichern:
#!/bin/sh pattern="convert|mogrify|bzip2|pigz|gzip"; while [ true ]; do for arg in `ps -A | egrep -e $pattern | grep -v grep | cut -c 1-5`; do echo "Reniceing $arg"; renice -n +5 $arg; done; sleep 1; done;
Einfach per [sudo] ./reniced > reniced.log & starten und alle im Suchmuster per “|” separierten Prozesse bekommen die neue Priorität aus Zeile 7.
Der Schlaf-Wert in Zeile 9 kann ebenfalls je nach bedarf justiert werden, je nach dem wie schnell man auf neue zutreffende Prozesse reagieren möchte. Wer’s ganz schnell haben will kann auch usleep verwenden.