Domanda

Quando scp un file, posso fermarlo con ^ Z e metterlo in background. Quando è in background, smette di stampare i suoi progressi ma la copia continua. Se lo metto di nuovo in primo piano, riprende a stampare. Come lo sa? SIGTTOU? succede su un ptty standard?

È stato utile?

Soluzione 2

Un mio collega e in realtà ho guardato attraverso la fonte e abbiamo trovato la risposta.

Ogni volta che scp sta per stampare un output, gira tcgetpgrp su stdout. Ciò restituirà il gruppo di processi di controllo del terminale (supponendo che sia un terminale). Stampa solo se il gruppo di processi che controlla il terminale è uguale al gruppo di processi di scp. Non risulta necessario alcun segnale! (Anche se gestisce SIGWINCH per calcolare la dimensione della linea di avanzamento).

Altri suggerimenti

Sì, ce l'hai. Il processo intrappolerebbe o ignorerebbe SIGTTOU (e forse SIGTTIN, a seconda di ciò che sta facendo), e quindi si comporterebbe in modo appropriato quando riceve quei segnali. Linux infatti invia questi segnali su normali pseudo-terminali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top