Konsolentipps | David Wolski | 3-2024 | 28. März 2024

Forkrun: Befehle parallel ausführen

Parade paralleler Prozesse: Forkrun ist ein nahtloser Ersatz für xargs und ist als pures Bash-Script programmiert. Es teilt Befehlsverkettungen mit xargs am Ende in mehrere Threads auf.

Viele Befehle und Kommandozeilenprogramme laufen in der Shell als Prozess nur mit einem Thread – auch auf heute üblichen Mehrkern-CPUs. Es gibt diverse Tricks in der Shell, dort einen Prozess für Dateioperationen mittels xargs sowie langen Befehlsketten sicher auf mehrere Threads aufzuteilen. Einfacher macht das die Ergänzung Forkrun.

Die Bash-Ergänzung Forkrun (https://github.com/jkool702/forkrun) ist als Shell-Script programmiert und dient als Ersatz für xargs aus dem Standardrepertoire. Generell dient dieser Befehl dazu, Eingaben per Befehlsverkettung weiterzuverarbeiten und beispielsweise auf eine Liste von Dateien jeweils ein Kommando auszuführen. Forkrun verhält sich identisch, verarbeitet übergebene Listen parallel in mehreren Prozessen und wird damit dramatisch schneller auf Mehrkern-Systemen. Die Einrichtung von Fork­run erfolgt über die Einbindung der Script-Datei in der Konfigurationsdatei „~/.bashrc“. Es braucht also keine root-Berechtigungen, um mit Forkrun zu arbeiten. Zur Einrichtung auf dem Linux-System öffnet die kurze URL https://m6u.de/forkrun den Quellcode des Scripts im Browser, um es als „.fork
run“ im Home-Verzeichnis zu speichern. Nun lädt man die „~/.bashrc“ in einen Texteditor und trägt dort ganz unten den Verweis

source ~/.forkrun

ein. Nach dem Speichern heißt es wieder, das Terminal zu beenden und neu zu starten, damit die neue Funktion zur Verfügung steht. Dazu ein praktisches Anwendungsbeispiel: 

find ./ -type f | forkrun sha256sum >SHA256.txt

Dies errechnet aus allen Dateien im aktuellen Verzeichnis deren SHA256-Checksumme und schreibt diese in die Textdatei „SHA256.txt“. Dabei werden nun alle CPU-Kerne eingespannt und nicht nur einer wie in diesem herkömmlichen xargs-Befehl:

find ./ -type f | xargs sha256sum >SHA256.txt

Forkrun arbeitet durch Parallelisierung um etliche Faktoren schneller, was sich laut den eigenen Messungen dessen Entwicklers bei allen Prozessen ab 50 Millisekunden Laufzeit bemerkbar macht.