le spouleur de tâches peut vous aider.
Comme dans freshmeat.net :
le spouleur de tâches est un système batch Unix où les tâches spoulées s'exécutent les unes après les autres. La quantité de travaux à exécuter simultanément peut être définie à tout moment. Chaque utilisateur de chaque système a sa propre file d'attente de travaux. Les tâches sont exécutées dans le contexte correct (celui de la mise en file d'attente) à partir de n'importe quel shell / processus, et sa sortie / ses résultats peuvent être facilement surveillés. Il est très utile lorsque vous savez que vos commandes dépendent de beaucoup de RAM, de beaucoup d’utilisation du disque, de beaucoup de sortie, ou pour une raison quelconque, il vaut mieux ne pas les exécuter toutes en même temps, pendant que vous voulez conserver vos ressources occupées pour un maximum de bienfaits. Son interface permet de l'utiliser facilement dans des scripts.
Le spouleur de tâches est disponible dans Debian , Ubuntu et autres distributions.
Il vous permet d'avoir une file d'attente de tâches à exécuter et d'accéder à leurs sorties à votre guise.
Par exemple:
$ tsp sleep 5
0
$ tsp sleep 5
1
$ tsp
ID State Output E-Level Times(r/u/s) Command [run=1/1]
2 running /tmp/ts-out.ZWn6Le sleep 5
1 finished /tmp/ts-out.Fhlcle 0 5.00/0.00/0.01 sleep 5
Si vous exécutez beaucoup de tâches en arrière-plan, cela vous aidera certainement.
Vous pouvez les exécuter séquentiellement ou dans un nombre prédéfini d'emplacements. Vous pouvez également établir des dépendances entre les tâches (exécuter la tâche1 uniquement si la tâche0 s'est terminée avec succès).
Raúl Salinas-Monteagudo
la source
La redirection de la sortie de la commande semble être hors de propos car la notification est envoyée par le shell lorsqu'un travail est démarré de manière asynchrone. Plus précisément, il s'agit d'une fonction shell (fonctionnalité) liée au contrôle des tâches .
Ici, une citation qui vient du "Bash Reference Manual", chapitre "Job Control", section un.
Notez qu'un script shell n'affiche pas cette notification.
Dans les faits
Zsh
La documentation Zsh fournit des indications similaires sur ces notifications, voir la
man 1 zshmisc
section "EMPLOIS". Ces notifications ne s'affichent pas lorsque le contrôle des travaux est désactivé.Frapper
Il semble que Bash affiche toujours par exemple
[1] 25647
. La "notification finale", par exemple,[1]+ Done true
ne s'affiche pas lorsque le contrôle des travaux est désactivé.Contrôle des travaux désactivé
Conclusion
Je ne sais pas si désactiver le contrôle des travaux pour masquer les notifications est une bonne chose?
Ressources
man 1 zshmisc
, section EMPLOIS.man 1 zshoptions
.la source
Vous pouvez invoquer
zsh
un shell non interactif pour désactiver les notifications de travaux.la source
Voir l'exemple suivant:
Ça marche bien. Pas besoin
( )
: cela fait un sous-shell non nécessaire.{ }
ne sont que des commandes de regroupement.la source
[2] 49591
et[2] + 49591 exit 1 find /usr
, quand il ne devrait imprimer ni l'un ni l'autre!C'est une vieille question, mais une réponse possible (en bash, non testée avec zsh) est d'utiliser le contrôle des tâches dans le sous-shell:
(command & wait)
Remarque: bash supprime les messages de travail d'arrière-plan de début / fin dans le sous-shell, et il n'y a pas besoin de redirection.
la source
(sleep 5 & wait)
retarde 5 secondes.