326 votes

Comment voulez-vous exécuter plusieurs programmes à partir d'un script bash?

Je suis en train d'écrire une .sh fichier qui s'exécute de nombreux programmes simultanément

J'ai essayé ce

prog1 
prog2

Mais qui va prog1 puis attend jusqu'à ce prog1 se termine et commence alors prog2...

Alors, comment puis-je exécuter en parallèle?

Merci

367voto

Ory Band Points 1909

Comment à ce sujet:

prog1 & prog2 && fg

Ce sera:

  1. Commencez prog1.
  2. L'envoyer à l'arrière-plan, mais garder l'impression de sa sortie.
  3. Commencez prog2, et le garder au premier plan, de sorte que vous pouvez le fermer avec ctrl-c.
  4. Lorsque vous fermez prog2, vous allez retourner à l' prog1's de premier plan, de sorte que vous pouvez le fermer avec ctrl-c.

290voto

psmears Points 7809
prog1 &
prog2 &

76voto

Ole Tange Points 4907

Avec GNU Parallèle http://www.gnu.org/software/parallel/ c'est aussi simple que:

(echo prog1; echo prog2) | parallel

En savoir plus:

10voto

fermin Points 337
#!/bin/bash
prog1 & 2> .errorprog1.log; prog2 & 2> .errorprog2.log

Rediriger les erreurs de séparer les journaux.

7voto

ljt Points 73

Vous pouvez essayer le spa. le spa est assez puissant, vous pouvez même créer un mini-cluster. xargs -P peut également être utile si vous avez un lot de parallèle gênant de traitement à faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X