Ετικέτες

Πέμπτη 9 Δεκεμβρίου 2010

Finding and killing processes

Μερικές φορές τυγχάνει να κολάει μια εφαρμογή και να θέλουμε να την κλείσουμε αλλά να μην μπορούμε. Όπως πιθανόν να ξέρετε αυτό στο Linux γίνεται με την εντολή top (για να δεις ποιο id είναι η διεργασία που έχει κολλήσει) και μετά η εντολή kill ή kill 9 αν αντιστέκεται :)
Ωστόσο μου έτυχε μια από αυτές τις μέρες να μην μπορώ να βρω την διεργασία μέσα στην λίστα top, καθώς φαίνεται μόνο ένας αριθμός active διεργασιών και σαν να μην φτάνει αυτό η λίστα ανανεώνεται και δυναμικά, χάνοντας την σειρά με την οποία κοιτούσες. Αυτό εύκολα το ξεπερνάς πατώντας q για να βγεις και έτσι φαίνεται η λίστα όπως ήταν λίγο πριν πατήσεις το q. Ακόμα και έτσι δεν έβλεπα πουθενά το όνομα του προγράμματος που ήθελα να κλείσω. Έτσι μου ήρθε η ιδέα να χρησιμοποιήσω ένα trick που έμαθα όσο αναφορά τις εντολές του linux σε ένα μάθημα τις σχολής στα πλαίσια ενός εργαστηρίου. Μας είχε αναφέρει χαρακτηριστικά ο καθηγητής ότι βάζοντας το "|" ανάμεσα στις εντολές στην ουσία ανακατευθύνουμε την έξοδο της μιας εντολής στην είσοδο της άλλης.
Χρησιμοποιώντας λοιπόν αυτή την γνώση και συνδυάζοντας την εντολή top με την grep(στην ουσία είναι μια εντολή που κάνει search έναν όρο που θες, απλοϊκά μιλώντας) έκανα το εξής τέχνασμα:

top | grep "όνομα-διεργασίας"

με αυτόν τον τρόπο αντί να μου εμφανίζεται ολόκληρη η λίστα των διεργασιών της top, φιλτράρεται από την grep και έτσι εμφανίζονται μόνο οι διεργασίες που ταιριάζουν στο όνομα που έδωσα.
Έτσι κατάφερα να ξετρυπώσω την διεργασία που ήθελα να τερματίσω και έκανα ένα kill id όπου id ο αριθμός της και άντε γεια :)
Επιτέλους κατάφερα να κάνω και κάτι με τις ήδη υπάρχουσες γνώσεις χωρίς να χρειαστεί να ψάξω στο google όπως κάθε φορά :P
Αρκετές γνώσεις στον τομέα των υπολογιστών αλληλοκαλύπτονται και είμαι σίγουρος ότι η παραπάνω λογική θα με βοηθήσει και σε άλλα προβλήματα που θα συναντήσω στο μέλλον.

1 σχόλιο: