Δημοσιεύτηκε: 20 Νοέμ 2008, 12:06
από Dimitris
Ο τίτλος ίσως να ακούγεται λίγο μπερδεμένος, αλλά αληθεύει. Άλλο το κέλυφος και άλλο το τερματικό. Παρολ'αυτά μπορούμε να συνδεθούμε στο ίδιο κέλυφος από διαφορετικό τερματικό.

Σιγουρα θα έχει τύχει να θέλετε να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή, π.χ. με ssh, να ξεκινήσετε μια εντολή από τη γραμμή εντολών, να αποσυνδεθείτε και μετά να συνδεθείτε από κάποιον άλλο υπολογιστή για να δείτε τα αποτελέσματά της. Κάτι τέτοιο είναι δυνατό με τη χρήση του προγράμματος screen, το οποίο πρέπει να είναι εγκατεστημένο φυσικά στον απομακρυσμένο υπολογιστή. Η εγκατάσταση γίνεται όπως πάντα από τη γραμμή εντολών:
Κώδικας: Επιλογή όλων
sudo apt-get install screen

H τυπική χρήση της εντολής είναι πρώτα να δημιουργήσουμε μια "οθόνη", να εκκινήσουμε εκεί τα προγράμματά μας, να "αποκολλήσουμε" (detach) την οθόνη, και έπειτα να ξανασυνδεθούμε από κάποιο άλλο μέρος του πλανήτη στην ίδια "οθόνη". Πληκτρολογώντας απλά
Κώδικας: Επιλογή όλων
screen

δημιουργείται μια οθόνη με ένα τυχαίο id. Έπειτα πατάμε Enter ή Space όπως μας λέει η οθονη και είμαστε σε ένα νέο κέλυφος. Εδω μπορούμε να εκκινήσουμε μια οποιαδήποτε διεργασία. Για να αποκολλήσουμε την οθονη στην οποία βρισκόμαστε πληκτρολογούμε Ctrl+A+D (εχοντας πατημένο το ctrl, χωρίς τα + φυσικά)Τώρα είμαστε στο προηγούμενο τερματικό απ' όπου ξεκινήσαμε. Για να δούμε πόσες οθόνες υπάρχουν, πληκτρολογούμε:
Κώδικας: Επιλογή όλων
screen -ls

και μπορούμε να δούμε τα ονόματα των "οθονών" καθώς και αν είναι αποκολλημένες ή όχι (Detached-Attached).
Για να δώσουμε ένα δικό μας όνομα, πχ. myscreen, στην οθόνη πληκτρολογούμε:
Κώδικας: Επιλογή όλων
screen -R myscreen

Aν μια οθόνη είναι αποκολλημένη τότε μπορούμε να ανοίξουμε ένα άλλο κέλυφος, το οποίο μπορεί να προέλθει και από ssh, και πληκτρολογούμε για παράδειγμα:
Κώδικας: Επιλογή όλων
screen -r myscreen

Eτσι επανερχόμαστε σε ότι κάναμε προηγουμένως. Φυσικά δε θα κρατήσει στη μνήμη όλα τα αποτελέσματα του προγράμματος που εκκινήσαμε στην οθονη. Για να το πετυχουμε και αυτό, πρέπει να κάνουμε χρήση της εντολής script. Οι οθόνες τερματίζονται όπως κάθε κέλυφος με exit ή ctrl+D. Περισσότερες λεπτομέρειες μπορείτε να βρείτε στο εγχειρίδιο:
Κώδικας: Επιλογή όλων
man screen