Android

Kill εντολή στο linux

Mastering Linux HTOP Command

Mastering Linux HTOP Command

Πίνακας περιεχομένων:

Anonim

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

Υπάρχουν διάφορα προγράμματα κοινής ωφελείας που σας επιτρέπουν να τερματίσετε τις διεργασίες που σας παραβιάζουν με το να kill το πιο συχνά χρησιμοποιούμενο.

kill εντολή

kill είναι ένα κέλυφος ενσωματωμένο στα περισσότερα κελύφη που προέρχονται από το Bourne όπως το Bash και το Zsh. Η συμπεριφορά των εντολών είναι ελαφρώς διαφορετική μεταξύ των κελυφών και του εκτελέσιμου προγράμματος standalone /bin/kill .

Χρησιμοποιήστε την εντολή type για να εμφανίσετε όλες τις θέσεις στο σύστημά σας που περιέχουν kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Η παραπάνω έξοδος λέει ότι το ενσωματωμένο κέλυφος έχει προτεραιότητα έναντι του αυτόνομου εκτελέσιμου αρχείου και χρησιμοποιείται κάθε φορά που πληκτρολογείτε kill . Αν θέλετε να χρησιμοποιήσετε το δυαδικό αρχείο, πληκτρολογήστε την πλήρη διαδρομή στο αρχείο /bin/kill ., θα χρησιμοποιήσουμε το ενσωματωμένο Bash.

Η σύνταξη της εντολής kill λαμβάνει την ακόλουθη μορφή:

kill…

Η εντολή kill αποστέλλει ένα σήμα σε συγκεκριμένες διεργασίες ή ομάδες επεξεργασίας, προκαλώντας τους να ενεργούν σύμφωνα με το σήμα. Όταν το σήμα δεν έχει καθοριστεί, το προεπιλεγμένο είναι -15 (-TERM).

Τα πιο συχνά χρησιμοποιούμενα σήματα είναι:

  • 1 ( HUP ) - Επαναφόρτωση μιας διαδικασίας. 9 ( KILL ) - Σκοτώστε μια διαδικασία. 15 ( TERM ) - Σταματήστε με χαρά μια διαδικασία.

Για να λάβετε μια λίστα όλων των διαθέσιμων σημάτων, καλέστε την εντολή με την επιλογή -l :

kill -l

Τα σήματα μπορούν να καθοριστούν με τρεις διαφορετικούς τρόπους:

  1. Χρησιμοποιώντας τον αριθμό (π.χ. -1 ή -s 1 ). Χρησιμοποιώντας το πρόθεμα "SIG" (π.χ., -SIGHUP ή -s SIGHUP ). Χωρίς το πρόθεμα "SIG" (π.χ., -HUP ή -s HUP ).

Οι ακόλουθες εντολές είναι ισοδύναμες μεταξύ τους:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

Τα PID που παρέχονται στην εντολή kill μπορούν να είναι τα εξής:

  • Εάν το PID είναι μεγαλύτερο από το μηδέν, το σήμα αποστέλλεται στη διαδικασία με αναγνωριστικό ίσο με το PID . Αν το PID ισούται με το μηδέν, το σήμα αποστέλλεται σε όλες τις διαδικασίες της τρέχουσας ομάδας διεργασιών. Με άλλα λόγια, το σήμα αποστέλλεται σε όλες τις διαδικασίες που ανήκουν στο GID του κελύφους που επικαλείται την εντολή kill . Χρησιμοποιήστε την εντολή ps -efj για να δείτε τα αναγνωριστικά ομάδας διαδικασίας (GIDs). Αν το PID ισούται με το -1 , το σήμα αποστέλλεται σε όλες τις διαδικασίες με το ίδιο UID με το χρήστη που καλεί την εντολή. Εάν ο χρήστης που επικαλείται είναι ρίζα, το σήμα αποστέλλεται σε όλες τις διεργασίες εκτός από την init και την ίδια διαδικασία θανάτου. Αν το PID είναι μικρότερο από -1 , το σήμα αποστέλλεται σε όλες τις διαδικασίες της ομάδας διαδικασίας eq με GID ίση με την απόλυτη τιμή το PID .

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

Διαδικασίες τερματισμού Χρήση της εντολής kill

Για να τερματίσετε ή να καταστρέψετε μια διαδικασία με την εντολή kill , πρώτα πρέπει να βρείτε τον αναγνωριστικό διαδικασίας (PID). Μπορείτε να το κάνετε χρησιμοποιώντας διαφορετικές εντολές όπως top , ps , pidof και pgrep .

Ας υποθέσουμε ότι το πρόγραμμα περιήγησης Firefox δεν ανταποκρίνεται και θα πρέπει να σκοτώσετε τη διαδικασία Firefox. Για να βρείτε το PID του προγράμματος περιήγησης, χρησιμοποιήστε την εντολή pidof :

pidof firefox

Η εντολή θα εκτυπώσει τα αναγνωριστικά όλων των διαδικασιών του Firefox:

6263 6199 6142 6076

Αφού γνωρίσετε τους αριθμούς διαδικασιών, μπορείτε να τερματίσετε όλα αυτά στέλνοντας το σήμα TERM :

kill -9 2551 2514 1963 1856 1771

Αντί να ψάξετε για PID και στη συνέχεια να τερματίσετε τις διαδικασίες, μπορείτε να συνδυάσετε τις παραπάνω εντολές σε μία:

kill -9 $(pidof firefox)

Επαναφορτιζόμενες διεργασίες Χρησιμοποιώντας την εντολή kill

Μια άλλη συνηθισμένη περίπτωση χρήσης για το kill είναι να στείλει το σήμα HUP , το οποίο λέει στις διαδικασίες να επαναφορτώσουν τις ρυθμίσεις του.

Για παράδειγμα, για να φορτώσετε ξανά το Nginx, πρέπει να στείλετε ένα μήνυμα στην κύρια διαδικασία. Το αναγνωριστικό διαδικασίας της κύριας διαδικασίας Nginx μπορεί να βρεθεί στο αρχείο nginx.pid , το οποίο συνήθως βρίσκεται στον κατάλογο /var/run .

Χρησιμοποιήστε την εντολή cat για να βρείτε το κύριο PID:

cat /var/run/nginx.pid

30251

Μόλις βρείτε το κύριο PID επανατοποθετήστε τις ρυθμίσεις Nginx πληκτρολογώντας:

sudo kill -1 30251

Η παραπάνω εντολή πρέπει να εκτελείται ως root ή χρήστη με δικαιώματα sudo.

συμπέρασμα

Η εντολή kill χρησιμοποιείται για την αποστολή ενός σήματος στις διεργασίες. Το πιο συχνά χρησιμοποιούμενο σήμα είναι το SIGKILL ή το -9 , το οποίο τερματίζει τις συγκεκριμένες διαδικασίες.

τερματικό θανάτου