Jak uruchomić kilka komend na systemie Linux w trybie równoległym?

Problem

Chciałbyś uruchomić kilka komend jednocześnie, lecz aby każda z nich uruchomiona została w osobnym wątku. Poniższy skrypt pozwoli Ci to zrobić.

#!/bin/bash

for cmd in "$@"; do {
  echo "--> Running \"$cmd\" command!";
  $cmd & pid=$!
  RUN_PID_LIST+=" $pid";
} done

trap "kill $RUN_PID_LIST" SIGINT
echo "--> Commands were run...";
wait $RUN_PID_LIST
echo "--> All your processes have been completed!";

 

Następnie uruchom skrypt.

./run_parallel.sh "echo 1" "sleep 2" "echo 2" "sleep 2"

Otrzymasz wynik jak poniżej:

./run_parallel.sh "echo 1" "sleep 2" "echo 2" "sleep 2"
--> Running "echo 1" command!
--> Running "sleep 2" command!
1
--> Running "echo 2" command!
--> Running "sleep 2" command!
2
--> Commands were run...
--> All your processes have been completed!

 

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

Leave a Reply

avatar
  Subscribe  
Powiadom o
Close Menu