Olmadan -t
, sshd
uzak kabuk (ve çocuklar gibi sleep
) ve stderr stdout iki boru üzerinden alır (ve ayrıca müşterinin girişini başka bir boru yoluyla gönderir).
sshd
kullanıcının oturum açma kabuğunu başlattığı işlemi beklemekle kalmaz, aynı zamanda bu işlem stdout borusunda (en azından opensh durumunda stderr borusunu değil) eof bekler.
Ve eof, borunun yazma ucunda açık olan herhangi bir işlemin dosya tanımlayıcısı olmadığında olur, bu genellikle yalnızca stdout'ları başka bir şeye yönlendirilmeyen tüm işlemler gittiğinde gerçekleşir.
Kullandığınızda -t
, sshd
boru kullanmaz. Bunun yerine, uzak kabuk ve çocuklarıyla tüm etkileşimler (stdin, stdout, stderr) bir sahte terminal çifti kullanılarak yapılır.
Bir yalancı terminal çifti sshd
ile, ana taraf ile etkileşim için , yalancı terminalin bağımlı tarafına açık fds ile hala işlem olup olmadığını bilmek için benzer bir işlem veya herhangi bir yol yoktur, bu yüzden sadece sonlandırılmasını bekler uzak kullanıcının oturum açma kabuğunu yürüttüğü ve sonra çıktığı işlem.
Bu çıkıştan sonra, pty çiftinin ana tarafı kapatılır, bu da pty'nin yok edildiği anlamına gelir, bu nedenle köle tarafından kontrol edilen süreçlere bir SIGHUP (varsayılan olarak onları sonlandıracaktır) verilir.