Bash να βρει και να σκοτώσει διεργασίες

A shell script wants your job

Σήμερα, ενώ δούλευα είδα ότι μία από τις μηχανές πολύ σκληρή lagna. Εισάγετε σε αυτό φαίνονται μια κόλαση μιας παρτίδας των ζόμπι nabl″skal cron διεργασίες (βίαιος γύρω από 50-60). Δεν υπήρχε κανένας τρόπος για να σκοτώσει όλα με killall έτσι έπρεπε να κάνω λίγο πιο εγγράμματοι λύση του προβλήματος – για να ξεκινήσετε ένα σωρό bash δέσμη ενεργειών για να βρει και να σκοτώσει τις διαδικασίες. 50-Τίνα PID-δεν γράφω εύκολα με το χέρι :Δ. Η δέσμη ενεργειών για ένα λεπτό και γδαρμένο είναι προκατειλημμένες υποτυπώδης, αλλά εξακολουθεί να αξίζει την προσοχή 🙂

Στη βάση του κάθεται η μεταφορική ταινία

ps ax | grep -v grep | grep process_name | awk '{print $1}')

Εδώ έχουμε μια λίστα με όλα τα PID-s της διαδικασίας που πρέπει να kilnem, όπως grep αποκλείεται από αυτή τη λίστα. Όπως έχουμε ήδη αναφέρονται τα πράγματα γίνονται εύκολα ό, τι περιστρέφεται σε ένα για. Εδώ είναι το τελικό αποτέλεσμα

#!/bin/bash

PR=$(ps ax | grep -v grep | grep process_name | awk '{print $1}')

for PID in $PR
do
echo "$PID will be killed"
kill -9 $PID
done

Μπορεί να είναι “συντονισμένοι” όπως το όνομα λαμβάνεται ως όρισμα μετά το όνομα του script και έτσι ονομάζεται ως εκτελέσιμα δυαδικά αρχεία. Ωστόσο, δεν είναι πολύ καλή πρακτική να έχουμε πολλά τέτοια 😀 συχνές περιπτώσεις, αλλά ποτέ δεν πονάει να προστατεύονται από οποιαδήποτε šitni

Ενισχυμένη από Zemanta

Αφήνω μια απάντηση

Your email address will not be published. Required fields are marked *

Anti SPAM *