Jak uruchomić wiele komend na systemie Linux w trybie równoległym
Chciałbyś uruchomić wiele 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 Bash:
./run_parallel.sh "echo 1" "sleep 2" "echo 2" "sleep 2"
Wyniki
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!