BASH: relier l'exécution du programme à un autre programme

Je veux créer un script qui exécute deux programmes. Cette partie est simple, mais il y a une prise: je veux tuer la seconde si la première sort. Comment puis je faire ça?

modifier

J'ai essayé de tuer le programme par son PID après que l'autre sort, mais le programme est hamster-time-tracker , qui est une application Python qui sort immédiatement, apparemment engendrant un autre process. Comment puis-je contourner cela? Existe-t-il un moyen d'get l'autre PID engendré?

Modifier 2

Deviner. J'ai dû exécuter python /usr/bin/hamster-time-tracker au lieu de hamster-time-tracker , et il est resté en cours d'exécution.

2 Solutions collect form web for “BASH: relier l'exécution du programme à un autre programme”

 #!/bin/bash cmd-a & a=${!} cmd-b & b=${!} wait $a kill $b 

J'ai utilisé yes a et yes b comme commands lors du test de cette.

Il y a une command d' attente dans bash pour attendre la fin de la première application et ensuite tuer la deuxième application.

Puisque les attentes sont insérées automatiquement après que les commands ne se terminent pas par &, le bon ordre peut vous empêcher d'entrer dans un problème d'attente manuelle:

 A & B # waits kill $! # then kills A 
  • Comment puis-je changer dans le directory vers lequel je viens de déplacer ce file?
  • Est-il possible d'attacher un shell à un tunnel ssh existant?
  • Déplacer le contenu d'un dossier vers un autre
  • GNU parallèle n'utilise pas complètement mes CPU
  • Sur Redhat, qu'est-ce que signifie "kernel.suid_dumpable = 1"?
  • Comment append un horodatage au journal de script bash?
  • Comment find l'adresse IP de la passerelle sous Linux
  • Rechercher une string / motif dans le text sélectionné dans BASH
  • Quelle est la différence entre unlink et rm?
  • Comment exporter une variable shell en bash?
  • Exécution de scripts Python dans linux
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.