Bozuk bir SSH oturumuna yeniden bağlanamıyor olsanız da, SSH içinde çalışan işlemi işlevsel olarak istediğinize eşdeğer bir şekilde geri alabilirsiniz.
Talimatlar
Senin durumunda, yeni bir SSH oturumundan, oturumundan veya benzeri şeylerden apt-get
kontrol edilmek üzere süreci devralacaktın . Bunun için en sevdiğim komut buydu:screen
reptyr
$ sudo apt-get install reptyr
$ ps ax | grep apt-get
10626 pts/8 R+ 0:32 apt-get upgrade
Ardından, işleminiz için bulduğunuz yardımla:
$ sudo reptyr -T 10626
Veya bu işe yaramazsa, şunu deneyin:
$ reptyr 10626
Bu aşamadan sonra, tüm klavye girişiniz üstlendiğiniz programa gider. Maalesef sizden apt-get
onay isteyen çıkış gibi SSH oturumunun eski çıktısını görmeyeceksiniz .
açıklamalar
Temelde aynı reptyr
(yani, ptrace
hata ayıklama eki ile) aynı çalışan birden çok araç vardır . Aşağıdaki sorulara ve cevapların tartışıldığı yerlere bakın:
Yukarıdaki talimatlarda, reptyr 10626
kullanımları ptrace
sırasında ayıklama bağlanma sudo reptyr -T 10626
komutu TTY çalmak kullanır ve tercih edilen (olup detayları ).
Son olarak, bir nedeni bu şekilde bir SSH oturumu boyunca alamaz nedeni sshd
süreci bir konak terminali tarafından kontrol edilmeyen, bunun yerine sağlayan bir - bir terminal köle bölümünü pts
cihazının - Ana bölüm içinde bulunduğu kontrol ederken İstemci makinesi, aralarında parçalanmış bir SSH oturumu ile burada. Böyle bir sshd
işlemi üstlenmeye zorladığınızda reptyr -s <pid>
, klavye girişiniz aktif alt işlemine değil, bu işleme gider. Yani bir "Ctrl + Z" basitçe onu öldürür sshd
.
apt-get
Sürecin hala devam etmesine şaşırdım . Tüm işlem zinciri ile birlikte SSH'ye kadar ölmüş olmalıydı. Bunundo-dist-upgrade
otomatik olarakscreen
/byobu
oturumunda başladığını fark ettim : belki bazı durumlardaapt-get
aynı mı?