Σελίδα 1 από 1

Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 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

Re: Screen

ΔημοσίευσηΔημοσιεύτηκε: 20 Νοέμ 2008, 14:26
από ftso
Πολύ ωραία :)
Δώσε όμως ένα πιο περιληπτικό τίτλο...

Re: Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 03 Ιαν 2011, 20:08
από linuxs
ίσως δεν κατάλαβα τον τίτλο αλλα τι διαφορά έχει με την απομακρυσμένη σύνδεση?

Re: Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 03 Ιαν 2011, 21:15
από ktogias
linuxs έγραψε:ίσως δεν κατάλαβα τον τίτλο αλλα τι διαφορά έχει με την απομακρυσμένη σύνδεση?

Αν εννοείς απομακρυσμένη σύνδεση τύπου VNC, δηλαδή με γραφικά, οι διαφορές είναι οι εξής:
  • Η σύνδεση μπορεί να γίνεται με SSH, δηλαδή κρυπτογραφημένα από άκρη σε άκρη. (Μπορεί αυτό να γίνει και με το VNC αλλά δεν ξέρω αν είναι έτσι η εξ οριμού ρυθμισή του, ενώ η χρήση ssh+screen είναι πολύ πιο απλή και δεν χρειάζεται κάποια ρύθμιση).
  • Η σύνδεση γίνεται σε εικονική κονσόλα κειμένου (virtual console) πράγμα που σημαίνει ότι δεν χρειάζεται να μεταφέρονται γραφικά, θέσεις και περιεχόμενα παραθύρων, κινήσεις κέρσορα.
  • Απόρροια του προηγουμένου είναι ότι ο χειρισμός του απομακρυσμένου υπολογιστή μπορεί να γίνεται με μεγάλη ταχύτητα. Με μια αξιοπρεπή σύνδεση η αίσθηση είναι σχεδόν ίδια με το να χρησιμοποιείς την κονσόλα του τοπικού σου υπολογιστή.
  • Μπορεί ο χειρισμός του απομακρυσμένου υπολογιστή να γίνει ακόμα και από πολύ αργές συνδέσεις (π.χ. dialup 33600 ή GSM) με σχεδόν ανεπαίσθητες καθυστερήσεις.
  • Με τη χρήση του screen ανοίγεις ένα session εικονικής κονσόλας κειμένου, εκτελείς κάποιο πρόγραμμα εκεί, αποσυνδέεις την κονσόλα (detach) και κάνεις logout. Αργότερα από άλλο υπολογιστή και δίκτυο, συνδέεσαι με ssh στο μηχάνημα συνδέεις την προηγούμενη κονσόλα (attach) και είναι σαν να μην έφυγες ποτέ. Η έξοδος του προγράμματος είναι εκεί, οι προηγούμενες εντολές που έδωσες με το βλεάκι κλπ.
  • Δεν χρειάζεται να τρέχει κάποιος server γραφικών (X) ούτε στο τοπικό, ούτε στο απομακρυσμένο μηχάνημα. Σε συνδυασμό με την ταχύτητα χειρισμού, το ssh+screen μπορεί να χρησιμοποιηθεί για πρόσβαση από και σε οποιοδήποτε μηχάνημα έχει κάποιο κέλυφος κειμένου (bash, rsh κλπ), ssh client/server και screen, και οποιουδήποτε είδους δικτύωση, δηλαδή πρακτικά από και προς unix/linux servers χωρίς ή με γραφικό περιβάλλον, κινητά τηλέφωνα, pdas, embeded unix/linux συστήματα (πχ. ρομπότ, αυτοματισμούς και ότι άλλο μπορεί να φανταστεί κάποιος).
  • Στην οθόνη του συστήματος που συνδέεσαι με ssh+screen (αν υπάρχει οθόνη) δεν φαίνεται τίποτα από το δικό σου session (σε αντίθεση με το vnc που δείχνει στην οθόνη του απομακρυσμένου υπολογιστή όλες τις ενέργειες αυτού που τον χειρίζεται από απόσταση).

Re: Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 03 Ιαν 2011, 22:51
από linuxs
με κάλυψες....thx!

Re: Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 04 Ιαν 2011, 12:40
από Dimitris
Να τονίσω ότι μπορείς να κάνεις και ssh σύνδεση με X forwarding, δηλαδή να ανοίγεις προγράμματα γραφικών τα οποία θα τρέχουν στον απομακρυσμένο υπολογιστή αλλά το αποτελεσμα, δηλ. τα γραφικά θα τα βλέπεις στον τοπικό υπολογιστή.

Re: Screen ή σύνδεση στο ίδιο κέλυφος από άλλο τερματικό

ΔημοσίευσηΔημοσιεύτηκε: 04 Ιαν 2011, 16:13
από ktogias
Dimitris έγραψε:Να τονίσω ότι μπορείς να κάνεις και ssh σύνδεση με X forwarding, δηλαδή να ανοίγεις προγράμματα γραφικών τα οποία θα τρέχουν στον απομακρυσμένο υπολογιστή αλλά το αποτελεσμα, δηλ. τα γραφικά θα τα βλέπεις στον τοπικό υπολογιστή.


Αυτό γίνεται απλά τρέχοντας την εντολή "ssh -XY user@host" . Αφού κάνεις login στο απομακρυσμένο μηχάνημα μπορείς να εκκινήσεις εκεί εφαρμογές δίνοντας το όνομα του εκτελέσιμού τους (π.χ. firefox --no-remote) και αυτές θα συνδεθούν μέσω του ssh session στο X server του τοπικού σου μηχανήματος και θα εμφανίσουν εκεί το παράθυρό τους. Με μια απλή DSL θα χρειαστεί να περιμένεις λίγο μέχρι να έρθουν τα περιεχόμενα των παραθύρων της εφαρμογής στον X server σου, και μετά θα μπορείς να τη χειριστείς με μικρές καθυστερήσεις. Σε περιβάλλον LAN 10/100/1000 οι καθυστερήσεις είναι ανεπαίσθητες.