This post is also available in: English (Englisch)
Ein guter Startpunkt ist -P 4 -n 1
um 4 Prozesses parallel laufen zu lassen (-P 4
), aber jeder Instanz des auszuführenden Prozesses nur ein Argument zu geben (-n 1
)
Dies sind die xargs-Optionen für die parallele Ausführung aus der xargs-manpage:
-P, --max-procs=ANZAHL höchstens diese ANZAHL Prozesse zugleich ausführen -n, --max-args=ANZAHL höchstens diese ANZAHL Argumente in der Befehlszeile verwenden
Beispiel:
cat urls.txt | xargs -P 4 -n 1 wget
Dieser Befehl führt bis zu 4 wget
-Befehle parallel aus, bis jede der URLs aus urls.txt
heruntergeladen wurde. Die Folgenden Prozesse würden parallel ausgeführt:
wget [URL #1] wget [URL #2] wget [URL #3] wget [URL #4]
Benutzt man stattdessen die Parameter -P 4 -n 2
dann würden die Folgenden Prozesse parallel ausgeführt:
wget [URL #1] [URL #2] wget [URL #3] [URL #4] wget [URL #5] [URL #6] wget [URL #7] [URL #8]
Ein größerer Wert für -n
könnte die Effizienz leicht erhöhen, da nicht für jede URL ein eigener Prozess initialisiert werden muss. Allerdings funktioniert ein Wert von n > 1
für manche Befehle nicht.