Bu yayın yardımcı olabilir. Öneri:
- süreci arka planla (Ctrl-Z, sonra bg ile )
- run -h% [jobid] (büyük olasılıkla bir bash-ism, dolayısıyla tcsh için çevirmeniz gerekir)
Kötü haber , tabii ki, yani bg zaten backgrounded olabilir ... süreç içinde çalışan aynı kabukta yapılması gerekir ... ama.
Çok kötü haber olmasıdır disown çağrısı aynı kabuk yapılması gerekebilir. Bu durumda, evet, berbatsın. Ama emin değilim, belki de kök onu zorla kesebilir.
Hmm. Olası iyi haber - tcsh, reddetme işlemini otomatik olarak yapar:
Tcsh normal olmayan bir şekilde çıkarsa, arka planda çalışan işleri otomatik olarak kapatır.
Dolayısıyla, uzun vadeli süreciniz zaten arka plandaysa, tcsh üst öğesini öldürmek devam etmesine izin vermelidir. İşlem şimdi başlangıç terminalinden ayrılmıştır. (Değilse, yukarıdaki "kötü haber" e bakın.)
Ne yazık ki, ekran değil, bu yüzden gerçek bir yeniden bağlanma yok. Belki gdb ile taklit edebilirsiniz (yine, ilk bağlantıdan):
[...] bazı kirli hack'lerle, 'stdout / stderr / stdin' sürecini yeniden açmak imkansız değildir.
Böylece yine de boş bir ekran penceresi oluşturabilirsiniz (örneğin uyku çalışır).
Ve sonra işleme eklemek için örneğin gdb kullanın, close (0)
call close (1)
call close (2)
call open ("/ dev / pts / xx", ...)
call dup (0)
dup (0)
ayırmayı çağır
Sürecin çıktısı ekrana gider. Bu ekran terminaline bağlanmaz, örneğin [sic] işlemi değil, “uyku” komutunu öldürür, fakat bu OP için yeterli olabilir.
Bu süreçte de "dup (1) çağrısı" ve "dup (2) çağrısı" olmaması gerektiğini merak ediyorum ...