Eu tenho a seguinte interação de shell:
[OP@localhost linux]$ tty
/dev/pts/7
[OP@localhost linux]$ stty tostop
[OP@localhost linux]$
Em outro terminal, digito:
[OP@localhost linux]$ echo hello > /dev/pts/7
De volta ao original, vejo:
[OP@localhost linux]$ tty
/dev/pts/7
[OP@localhost linux]$ stty tostop
[OP@localhost linux]$ hello
Por que é isso? O processo de eco não deveria ser interrompido?
Isto é o que a página de
termios(3)
manual diz:Seu
echo
processo[1] não é um processo em segundo plano e não tenta gravar em seu tty de controle.Observe também o bit "grupo de processos"; um sinal de controle de trabalho como
SIGTTIN
,SIGTTOU
,SIGINT
, etc é enviado para todo o grupo de processos/trabalho, não apenas para o processo culpado; em um pipeline comofoo | bar &
, ambosfoo
ebar
serão interrompidos.[1] na verdade,
echo
é um shell embutido, não é executado como um processo separado.