Σχεδόν κάθε διαδικασία στο Linux έχει ένα τερματικό ελέγχου. Τι είναι όμως ένα τερματικό ελέγχου; Ας ανακαλύψουμε.

Ίσως έχετε ακούσει τον όρο "τερματικό ελέγχου" που χρησιμοποιείται σε σχέση με τις διαδικασίες Linux. Μπορεί να έχετε σύγχυση σχετικά με το τι είναι ένα τερματικό ελέγχου. Ευτυχώς, ένα τερματικό ελέγχου είναι εύκολο να κατανοηθεί.

Τι είναι ένα τερματικό ελέγχου;

Ένα τερματικό ελέγχου είναι ένα τερματικό όπου ξεκινά μια διαδικασία Linux. Για παράδειγμα, εάν εκτελείτε μια εντολή από το κέλυφος, το παράθυρο τερματικού όπου εισαγάγατε την εντολή είναι το τερματικό ελέγχου.

Οι διεργασίες που ξεκινούν με τερματικά ελέγχου κληρονομούν χαρακτηριστικά του γονικού τερματικού. Αυτό οφείλεται στον τρόπο με τον οποίο εκκινούνται οι διαδικασίες στο Linux. Όταν εκτελείτε μια εντολή, το κέλυφος δημιουργεί ένα αντίγραφο του εαυτού του ή "forks", στη συνέχεια αντικαθίσταται με το πρόγραμμα που θέλετε να εκτελέσετε ή "execs".

Πώς να δείτε ποιες διεργασίες έχουν τερματικό ελέγχου

Είναι εύκολο να δεις διαδικασίες που έχουν τερματικό ελέγχου στο Linux. Μπορείς να χρησιμοποιήσεις

instagram viewer
την εντολή ps να τα δεις.

Μπορείτε να δείτε όλες τις διεργασίες που ανήκουν σε όλους τους χρήστες του συστήματος, είτε έχουν τερματικά ελέγχου είτε όχι, χρησιμοποιώντας το “aux” διαφωνία:

ps aux

Επειδή αυτό δημιουργεί πολλά αποτελέσματα σε συστήματα Linux, μπορεί να είναι χρήσιμο να το εισάγετε σε έναν τηλεειδοποιητή, όπως λιγότερα:

ps aux | πιο λιγο

Μπορείτε επίσης να δείτε τις πρώτες γραμμές χρησιμοποιώντας το βοηθητικό πρόγραμμα κεφαλής:

ps aux | κεφάλι

Στην έξοδο, θα δείτε μια στήλη με την ένδειξη "TTY". Αυτό υποδεικνύει το τερματικό ελέγχου μιας διεργασίας, εάν υπάρχει. Μια διεργασία με τερματικό ελέγχου θα εμφανίσει "ttyx" όπου "x" είναι ο αριθμός τερματικού ή "pts", ακολουθούμενη από μια κάθετο (/) και τον ψευδοτελικό αριθμό γραμμής.

Δεδομένου ότι τα περισσότερα τερματικά είναι στην πραγματικότητα εξομοιωτές τερματικών, χρησιμοποιούν ψευδοτερματικά ή PTY. Το "pts" υποδεικνύει έναν εξομοιωτή τερματικού και όχι ένα φυσικό τερματικό ή εικονική κονσόλα.

Διαδικασίες χωρίς έλεγχο τερματικών

Στα περισσότερα συστήματα Linux, η στήλη TTY θα εμφανίζει α ερωτηματικό (?) χαρακτήρα σε πολλές διαδικασίες. Αυτό συμβαίνει επειδή η διαδικασία δεν έχει τερματικό ελέγχου. Γιατί συμβαίνει αυτό;

Τα συστήματα Linux εκτελούν πολλούς δαίμονες ή υπηρεσίες στο παρασκήνιο. Αυτοί μπορεί να είναι διακομιστές, όπως ένας διακομιστής ιστού, καθώς και δαίμονες που κάνουν πολλά βασικά πράγματα, όπως η εκτέλεση της σύνδεσης δικτύου σας. Αυτά δεν χρειάζεται να χρησιμοποιούν τερματικό, επομένως λειτουργούν χωρίς ένα.

Εάν εκκινήσετε μια γραφική εφαρμογή από το μενού ενός περιβάλλοντος επιφάνειας εργασίας, ούτε αυτό θα έχει τερματικό ελέγχου.

Οι τερματικοί πολυπλέκτης όπως το GNU Screen ή το tmux σάς επιτρέπουν να αποσυνδέσετε μια διεργασία. Εάν αποσυνδεθείτε αλλά συνεχίσετε να λειτουργεί το σύστημά σας, μπορεί να διαπιστώσετε ότι αυτή η διαδικασία δεν διαθέτει επίσης τερματικό ελέγχου.

Εάν έχετε μια διαδικασία χωρίς τερματικό ελέγχου από την οποία θέλετε να απαλλαγείτε, μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα kill.

Τώρα ξέρετε για τον έλεγχο των τερματικών

Ένα τερματικό ελέγχου είναι ένα τερματικό από το οποίο εκκινήσατε μια εντολή. Είναι εύκολο να δείτε ποιες διεργασίες κάνουν και ποιες δεν έχουν τερματικό ελέγχου με την εντολή ps. Και πολλά προγράμματα Linux δεν το κάνουν, είτε επειδή είναι δαίμονες είτε μπορεί να τα έχετε αποσυνδέσει με έναν τερματικό πολυπλέκτη.

Οι πολυπλέκτης όπως το tmux όχι μόνο κάνουν τις τοπικές συνεδρίες τερματικού να διατηρούνται σε όλες τις συνδέσεις, αλλά είναι επίσης ισχυρά εργαλεία για απομακρυσμένες συνδέσεις SSH.