Se eu mudei a sessão de um processo, o stdin e stdout do processo serão alterados?

0

Eu li que um processo obtém sua entrada e saída do terminal que sua sessão está relacionada.

Então, isso significa que, se eu mudei a sessão de um processo, o stdin e stdout do processo mudaram (porque agora efetivamente o terminal do processo foi alterado)?

Aqui é onde eu leio .

    
por Steve 17.05.2017 / 22:17

1 resposta

1

A entrada e a saída padrão são tipicamente conectadas a uma linha de terminal de concreto, por ex. %código%. Você pode ver, por exemplo em /dev/pts/5 (o destino dos links simbólicos) (substitua /proc/12345/fd pelo ID do processo real). Não há como esse alvo poder mudar automaticamente para outra coisa. Para alterá-los, os descritores de arquivos mencionados precisam ser explicitamente fechados e os novos explicitamente abertos.

Não sei ao certo o que acontece no caso improvável / incomum de alguém fazer alguns truques especiais e, de alguma forma, a entrada e a saída padrão apontam para 12345 . Eu não acho que eu já vi uma coisa dessas. Eu vejo uma chance de que sua suposição possa estar correta e efetivamente os terminais de entrada e saída podem mudar neste caso.

    
por 17.05.2017 / 23:15