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 
  • Caractères generics variables en coquille
  • exécutez le file PHP à partir du script shell
  • Où est $ HOME set dans Centos 6.3
  • Comment pouvez-vous voir les processus que vous avez mis en contexte?
  • Y a-t-il une raison pour utiliser bash over zsh?
  • "Runas" ou "sudo" équivalent sur AS400 IBM iSeries
  • Copie récursive / profondeur de la command line dans Linux?
  • Synchroniser des files de plusieurs sources avec une copy maître en fonction du time de modification
  • Les commands de chargement sftp sans mot de passe ne sont pas exécutées à l'aide d'un script shell
  • Comment append une variable dans une command grep
  • redirigez temporairement STDOUT vers un autre descripteur de file, mais toujours à l'écran
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.