Question

Lorsque je scp un fichier, je peux l'arrêter avec ^ Z et le mettre en arrière-plan. Quand il est en arrière-plan, il cesse d'imprimer sa progression mais la copie continue. Si je le fais de nouveau au premier plan, l’impression reprend. Comment sait-il? SIGTTOU? ça se passe sur un ptty standard?

Était-ce utile?

La solution 2

Un de mes collègues et moi-même avons parcouru la source pour trouver la réponse.

Chaque fois que scp est sur le point d'imprimer une sortie, il exécute tcgetpgrp sur stdout. Ceci renverra le groupe de processus de contrôle du terminal (en supposant qu'il s'agisse d'un terminal). Il n'imprimera que si le groupe de processus contrôlant le terminal est identique au groupe de processus de scp. Il s'avère qu'aucune signalisation n'est requise! (Bien qu’il gère SIGWINCH pour calculer la taille de la ligne de progression).

Autres conseils

Oui, vous l'avez. Le processus intercepterait ou ignorerait SIGTTOU (et peut-être SIGTTIN, en fonction de ce qu'il ferait), puis il se comporterait correctement lors de la réception de ces signaux. Linux envoie effectivement ces signaux sur des pseudo-terminaux normaux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top