En utilisant bash, on peut mettre en pause un process avec control-z
. Cependant, y at-il des circonstances générales ou des lignes direcsortingces pour se méfier d'un process qui ne se comporterait pas bien avec une pause?
Mon scénario spécifique était la création d'un file tar qui prenait plus de time que prévu. Je voulais faire une pause pour le mettre en arrière-plan, mais j'ai décidé de ne pas le faire. Ma question n'est pas, bien sûr, spécifique au goudron. Au contraire, j'espère comprendre un peu mieux la fonctionnalité de pause dans bash ainsi que ce qui pourrait faire qu'un process réagisse mal à la pause.
Les tâches de stockage (pvmove, veritas vx-whatever) qui reposent sur des copys atomiques. Ce n'est pas bon s'ils sont coincés hors de leur contrôle. Cela dépend du fait que la tâche tire juste hors de l'API et fait le rest de l'espace du kernel, alors c'est sûr. Si cela se produit dans ce * process * de votre shell, alors allez vraiment avec l'écran et gardez les mains.
Je vous recommand de ne pas les arrêter à l'arrière-plan. Les commands qui utilisent des tampons comme dd semblent être meilleures, à l'exception des lecteurs de bande mentionnés ci-dessus.
(J'ai une fois gagné un redémarrage supplémentaire, less de sumil et beaucoup de paranoïa quand cela m'est arrivé tout en éclaircissant le désordre des autres) évidemment: n'essayez pas de prendre des raccourcis si vous corrigez les raccourcis d'autres personnes …)
Si votre process est en train d'écrire des données, soyez conscient que les problèmes de synchronisation avec les périphériques d'access non randoms et les tampons peuvent être problématiques. J'ai vu des lecteurs de bande ont parfois des problèmes avec cela.
Et le scénario banal: faire Ctrl-Z, puis oublier et se déconnecter, et perdre le process! =)
Pas vraiment une réponse spécifique à la question, mais alternativement, vous pourriez essayer d'exécuter des tâches simultanées en utilisant l' screen
. Vous pouvez donc utiliser le shell en même time qu'un autre programme.