Πώς να βρείτε και να σκοτώσετε τις τρέχουσες διεργασίες στο Linux


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

Σε αυτόν τον τρόπο, θα εξετάσουμε την εξάλειψη λιγότερο παραγωγικών ή ανεπιθύμητων διαδικασιών στο σύστημα Linux σας.

Τι είναι μια διαδικασία στο Linux;

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

Όταν μια διεργασία εκτελείται, συνεχίζει να μεταβαίνει από τη μια κατάσταση στην άλλη και μια διεργασία μπορεί να βρίσκεται σε μία από τις ακόλουθες καταστάσεις:

  1. Εκτέλεση: σημαίνει ότι η διαδικασία είτε εκτελείται είτε απλώς έχει ρυθμιστεί να εκτελεστεί.
  2. Αναμονή: σημαίνει ότι η διαδικασία περιμένει ένα συμβάν ή έναν πόρο του συστήματος για να εκτελέσει μια εργασία.

Υπάρχουν δύο τύποι διαδικασίας αναμονής στο Linux, δηλαδή η διακοπή και η αδιάλειπτη.

Μια διαδικασία αναμονής που μπορεί να διακοπεί από σήματα ονομάζεται Διακοπτόμενη, ενώ μια διαδικασία αναμονής που βρίσκεται σε άμεση αναμονή σε συνθήκες υλικού και δεν μπορεί να διακοπεί κάτω από οποιεσδήποτε συνθήκες ονομάζεται αδιάλειπτη.

  1. Διακοπή: σημαίνει ότι η διαδικασία έχει διακοπεί, χρησιμοποιώντας ένα σήμα.
  2. Zombie: σημαίνει ότι η διαδικασία διακόπηκε απότομα και είναι νεκρή.

Με αυτή τη σύντομη επισκόπηση, ας δούμε τώρα τρόπους θανάτωσης διαδικασιών σε ένα σύστημα Linux. Έχουμε ήδη καλύψει μερικά άρθρα σχετικά με τρόπους εξουδετέρωσης των διεργασιών που εκτελούνται στο Linux χρησιμοποιώντας kill, pkill, killall και xkill, μπορείτε να τα διαβάσετε παρακάτω.

  1. Οδηγός για τη διαχείριση διαδικασιών Linux με χρήση εντολών Kill, Pkill και Killall
  2. Πώς να σκοτώσετε διαδικασίες Linux που δεν ανταποκρίνονται χρησιμοποιώντας την εντολή Xkill

Κατά τη θανάτωση διεργασιών, η εντολή kill χρησιμοποιείται για την αποστολή ενός επώνυμου σήματος σε μια επώνυμη διεργασία ή ομάδες διεργασιών. Το προεπιλεγμένο σήμα είναι το σήμα TERM.

Θυμηθείτε ότι η εντολή kill μπορεί να είναι μια ενσωματωμένη συνάρτηση σε πολλά σύγχρονα κελύφη ή εξωτερικά που βρίσκονται στο /bin/kill.

Πώς να βρείτε το PID διεργασίας στο Linux

Στο Linux, κάθε διεργασία σε ένα σύστημα έχει ένα PID (Αριθμός Αναγνώρισης Διεργασίας) που μπορεί να χρησιμοποιηθεί για την εξάλειψη της διαδικασίας.

Μπορείτε να αναγνωρίσετε το PID οποιασδήποτε διαδικασίας χρησιμοποιώντας την εντολή pidof ως εξής:

$ pidof firefox
$ pidof chrome
$ pidof gimp-2.8

Πώς να σκοτώσετε διεργασίες στο Linux

Μόλις βρείτε το PID διεργασίας, ας δούμε τώρα πώς να σκοτώνουμε διεργασίες. Σε αυτό το πρώτο παράδειγμα, θα πάρω πρώτα το PID της διαδικασίας και μετά θα στείλω ένα σήμα σε αυτήν.

Θέλω να σκοτώσω τη διαδικασία gimp, οπότε θα το κάνω ως εξής:

$ pidof gimp-2.8
$ kill 9378

Για να επαληθεύσετε ότι η διαδικασία έχει τερματιστεί, εκτελέστε την εντολή pidof και δεν θα μπορείτε να προβάλετε το PID.

$ pidof gimp-2.8

Μπορείτε επίσης να στείλετε ένα επώνυμο σήμα στη διεργασία χρησιμοποιώντας το όνομα ή τους αριθμούς του σήματος ως εξής:

$ pidof vlc
$ kill -SIGTERM 9541
$ pidof vlc

Χρησιμοποιώντας τον αριθμό σήματος για να σκοτώσετε μια διαδικασία:

$ pidof banshee
$ kill -9 9647
$ pidof banshee

Στο παραπάνω παράδειγμα, ο αριθμός 9 είναι ο αριθμός σήματος για το σήμα SIGKILL.

Πώς να σκοτώσετε τα PID πολλαπλών διεργασιών στο Linux

Για να σκοτώσετε περισσότερες από μία διεργασίες, περάστε τα PID(α) στην εντολή kill ως εξής:

$ pidof gimp-2.8
$ pidof vlc
$ pidof banshee
$ kill -9 9734 9747 9762

Περίληψη

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