Uzaktan bir makinaya ssh ile bağlandınız. Fakat başlattığınız download, log check ya da derleme için beklemeniz gerekiyor, yoksa gerekmiyor mu?
Hayır, gerekmiyor. Sunucuza bağlanın ve Screen programı kullanın. Sonra isterseniz SSH bağlatınızı kapatın. Başlatmış olduğunuz süreç/işlem bitene kadar devam eder.
Yapılması gerekenler kısaca bir örnek ile şöyle:
SSH ile normal bağlantınızı yapın. Tabi illaki ssh bağlantısı olması şart değil. Normal kendi sisteminizdenden başlatabilirsiniz.
Shell penceresi açın ve screen komutunu verin.
Şimdi sistemden yeni bir screen, yani yeni bir pencere aldınız.
Bu pencerede yapmak istediğinizi veya uygulamak istediğiniz komutu verin. Mesela atıyorum 700MB boyutunda bir ISO dosyası indirmek istiyorsunuz:
Code:
wget -c
http://felanfilan.com/deneme.iso
İndirme komutunu verdikten sonra aşağıdaki tuş kombinasyonuna tıklayın (CTRL yi bırakmıyorsunuz)
Code:
ctrl a + d
Bu işlemden sonra screen detach edildi d,ye bir mesaj gelir. Eğer bu mesajı alamazsanız süreci tahmimen öldürmüş olutsunuz. Yani muhakkak DETACHED mesajını almanız gerekir.
Hayırlı olsun... Sizin işlem
Code:
ps -aux
komutu ile görülebilir. Şimdi o PC kapanmadığı sürece screen penceresinde uygulanan komut bitene kadar uygulanır. SSH ile bağlıysanız gönül rahatlığı ile bağlantınızı koparabilirsiniz.
Aynı kullanıcı olarak tekrar bağlanıp sonucu görmek için
Code:
screen -r
yazın. Bir tane açtıysanız doğrudan screen ekranı gelir. Birden fazla screen ekranı açtıysanız, komuttan sonra size numaraları verir. Sizin screen number girmeniz gerekir
Code:
screen -r PID_NO
screen -r komutu ile screen'i çalıştırdıktan sonra sadece bir tane pencere açılır, eğer birden fazla pencere'ye ihtiyacınız varsa aşağıdaki tuş kombinasyonu ile yeni pencere'ler açabilirsiniz. (CTRL yi bırakmıyorsunuz) (c: create)
Code:
ctrl a + ctrl c
Diyelim birden fazla pencere açtınız, bunlar arasında ileri yönde gezinmek için

n: next)
Code:
ctrl a + n
İleri gidip de geri gelmemek olur mu

p: previous)
Code:
ctrl a + p
Açmış olduğun tüm pencere'leri listelemek içinse aşağıdaki tuş kombinasyonunu kullanabilirsiniz. Böylece karşınıza tüm pencereleri gösteren bir menü çıkar, bu menüde ok tuşları veya j-k tuşları ile gezinebilirsiniz
Code:
ctrl a + "
Diyelim ki bir screen'de birden çok pencere açtınız ve hangisinde ne çalıştırdığınızı veya hangi pencereyi ne amaçlı kullandığınızı unutuyorsunuz, bunu da düşünmüşler. Her bir pencere'ye bir isim(etiket) atayabiliyorsunuz. Bunu içinse: (büyük A)
Code:
ctrl a + A
Her pencere'nin bir numarası vardır, pencereler'ler arasında gezinmek için bu numaraları kullanabilirsiniz. Numaralandırma 0'dan başlar. Misal 7. screen'e gitmek için:
Code:
ctrl a + 8
Hangi pencere'de olduğunuza ait kısacık bir bilgi için

i: info)
Code:
ctrl a + i
Uzun bir komut yazdınız, ama bir baktınız ki "scp" yerine "cp" yazmışınız, satır başına dönmeniz gerekiyor:
Code:
ctrl a + a
Satırın başına geldiniz ama satır sonuna ":" koymayı unutmuşsunuz, satır sonuna gitmek için:
Code:
ctrl + e
Uyarı: Sistemde screen paketi kurulu olmalıdır. Öntanımlı olarak kurulu olmayabilir. Paket yöneticiniz ile kolayca kurabilirsiniz.
Not: Eterm ile screen'i birleştiren Escreen teması, sizi yukarıdaki tuş kombinasyonları ezberlemeden screen kullanmanızı sağlayacaktır, yalnız bu özelliği kullanmak için yerel makinanızda çalışmanız gerekmektedir, ya da X11 Forwarding gibi yöntemlerle uzaktaki makinadaki Eterm+Escreen'i kendi makinanıza yönlendirmeniz gerekmektedir.