Pregunta

Cuando hago scp en un archivo, puedo detenerlo con ^ Z y ponerlo en segundo plano. Cuando está en segundo plano, deja de imprimir su progreso, pero la copia continúa. Si vuelvo a ponerlo en primer plano, se reanuda la impresión. Como lo sabe SIGTTOU? ¿Eso sucede en un ptty estándar?

¿Fue útil?

Solución 2

Un compañero mío y yo, en realidad, revisamos la fuente y encontramos la respuesta.

Cuando scp está a punto de imprimir la salida, ejecuta tcgetpgrp en stdout. Esto devolverá el grupo de proceso de control del terminal (asumiendo que es un terminal). Solo se imprimirá si el grupo de proceso que controla el terminal es el mismo que el grupo de proceso de scp. Resulta que no se requiere señalización! (Aunque maneja SIGWINCH para calcular el tamaño de la línea de progreso).

Otros consejos

Sí, lo tienes. El proceso atraparía o ignoraría a SIGTTOU (y tal vez a SIGTTIN, dependiendo de lo que esté haciendo), y luego se comportaría de manera apropiada al recibir esas señales. Linux sí envía esas señales en pseudo-terminales normales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top