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

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

Τρόπος χρήσης της εντολής 'killall'

ο killall εντολή σκοτώνει όλες τις διεργασίες ονομαστικά. Αυτό σημαίνει ότι εάν τρέχετε τρεις εκδόσεις του ίδιου προγράμματος, η εντολή killall σκοτώνει και τις τρεις.

Για παράδειγμα, ανοίξτε ένα μικρό πρόγραμμα όπως ένα πρόγραμμα προβολής εικόνων. Τώρα ανοίξτε ένα άλλο αντίγραφο του ίδιου προγράμματος προβολής εικόνων. Αυτό το παράδειγμα χρησιμοποιεί το Xviewer, το οποίο είναι ένας κλώνος του Eye Of Gnome.

Ανοίξτε ένα τερματικό και πληκτρολογήστε την ακόλουθη εντολή:

killall xviewer

Και οι δύο περιπτώσεις του προγράμματος κλείνουν.

Σκοτώστε την Ακριβή Διαδικασία

Η εντολή killall μπορεί να παράγει περίεργα αποτελέσματα. Εάν έχετε ένα όνομα εντολής που ξεπερνά τους 15 χαρακτήρες, η εντολή killall λειτουργεί μόνο στους πρώτους 15 χαρακτήρες. Εάν, επομένως, έχετε δύο προγράμματα που μοιράζονται τους ίδιους πρώτους 15 χαρακτήρες, και τα δύο προγράμματα ακυρώνονται παρόλο που θέλατε να σκοτώσετε μόνο έναν.

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

killall -ε

Αγνοήστε την περίπτωση κατά τη θανάτωση προγραμμάτων

Για να βεβαιωθείτε ότι η εντολή killall αγνοεί την περίπτωση του ονόματος προγράμματος που παρέχετε, χρησιμοποιήστε την ακόλουθη εντολή:

killall -I
killall --ignore-case

Σκοτώστε όλα τα προγράμματα στην ίδια ομάδα

Όταν εκτελείτε μια εντολή όπως η ακόλουθη, δημιουργεί δύο διεργασίες:

ps -ef | πιο λιγο

Μία εντολή είναι για το ps -ef μέρος, το οποίο παραθέτει όλες τις διεργασίες που εκτελούνται στο σύστημά σας και η έξοδος διοχετεύεται στο λιγότερη εντολή. Και τα δύο προγράμματα ανήκουν στην ίδια ομάδα, που είναι κτυπώ δυνατά.

Για να σκοτώσετε και τα δύο προγράμματα ταυτόχρονα, εκτελέστε την ακόλουθη εντολή:

killall -ζ

Για παράδειγμα, για να σκοτώσετε όλες τις εντολές που εκτελούνται σε ένα κέλυφος bash εκτελέστε τα εξής:

killall -g bash

Για να απαριθμήσετε όλες τις ομάδες που εκτελούνται, εκτελέστε την ακόλουθη εντολή:

ps -g

Λάβετε επιβεβαίωση πριν από τη θανάτωση προγραμμάτων

Προφανώς, η εντολή killall είναι μια ισχυρή εντολή και δεν θέλετε να σκοτώσετε κατά λάθος τις λάθος διαδικασίες.

Όταν χρησιμοποιείτε τον ακόλουθο διακόπτη, ερωτηθείτε εάν είστε σίγουροι πριν ολοκληρωθεί κάθε διαδικασία.

killall -i

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

Φανταστείτε ότι εκτελείτε ένα πρόγραμμα και διαρκεί πολύ περισσότερο από ό, τι περιμένατε.

Μπορείτε να σκοτώσετε την εντολή με τον ακόλουθο τρόπο:

killall -o h4

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

Καθορίστε οποιοδήποτε από τα ακόλουθα χρονικά ορόσημα:

  • μικρό: δευτερόλεπτα
  • Μ: λεπτά
  • η: ώρες
  • ρε: μέρες
  • w: εβδομάδες
  • Μ: μήνες
  • y: χρόνια

Εναλλακτικά, για να σκοτώσετε εντολές που μόλις άρχισαν να εκτελούνται, χρησιμοποιήστε τον ακόλουθο διακόπτη:

killall -y h4

Αυτή τη φορά η εντολή killall σκοτώνει όλα τα προγράμματα που εκτελούνται για λιγότερο από 4 ώρες.

Μην μου λες όταν μια διαδικασία δεν σκοτώνεται

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

όνομα προγράμματος: δεν βρέθηκε διαδικασία

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

killall -q

Χρήση κανονικών εκφράσεων

Αντί να καθορίσετε το όνομα ενός προγράμματος ή μιας εντολής, καθορίστε μια τυπική έκφραση, έτσι ώστε όλες οι διεργασίες που ταιριάζουν με την κανονική έκφραση να κλείνονται από την εντολή killall.

Για να χρησιμοποιήσετε μια τυπική έκφραση χρησιμοποιήστε την ακόλουθη εντολή:

killall -r 

Σκοτώστε προγράμματα για έναν συγκεκριμένο χρήστη

Για να σκοτώσετε ένα πρόγραμμα που ανήκει σε έναν συγκεκριμένο χρήστη, χρησιμοποιήστε το -u διακόπτης:

killall -u 

Παραλείψτε το όνομα του προγράμματος για να τερματίσετε όλες τις διαδικασίες αυτού του χρήστη.

Περιμένετε να τελειώσει το killall

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

Εκτελέστε την ακόλουθη εντολή:

killall -w

Εάν το πρόγραμμα δεν πεθάνει ποτέ, τότε το killall συνεχίζει να ζει.