8
votes

Y a-t-il une commande shell qui tuera tous les processus de queue de fond

Si j'exécute un script qui démarre plusieurs processus avec le & comme xxx

Comment puis-je les fermer tout en bas?


0 commentaires

4 Réponses :


5
votes

killall queue devrait faire le tour, mais il fermera également tout autre processus de queue que vous utilisez.


0 commentaires

11
votes

Vous pouvez tuer toutes les commandes de la queue par killall queue


2 commentaires

C'est la réponse que j'espérais!


C'est ça. Simple et facile.



4
votes

"N'oubliez pas" les enfants PIDS.

tail -f logfile1 & 
pid1=$!

tail -f logfile2 &
pid2=$!

kill $pid1 $pid2


0 commentaires

3
votes

Vous pouvez vous référer à des travaux d'arrière-plan dans votre shell actuel avec le % 1 code>, % 2 code>, ... idiomes.

à ma connaissance il n'y a rien de tel comme une prise tout; il n'y a pas de % * code> ou un équivalent. p>

mais vous pouvez raccourcis avec p> xxx pré>

qui tuerait les huit premiers procédés de référence toujours en cours d'exécution dans votre shell actuel. Qui peut ne pas être une queue code>. P>

soyez prudent que vous tuez; -) p>

Si vous avez le contrôle total des processus d'arrière-plan. Un pari sûr pour vous. Depuis que vous mentionnez que vous souhaitez le faire à partir d'un script shell, et si la queue code> s sont les seuls processus d'arrière-plan, cela est simple. Assurez-vous simplement que votre script Shell commence un sous-riche, de sorte qu'il n'affecte jamais les processus d'arrière-plan d'une coque interactive. Par exemple, vous pouvez démarrer votre script avec P>

#!/usr/bin/bash


0 commentaires