למצוא ולהרוג תהליכים

A shell script wants your job

היום בזמן שעבדתי ראיתי שאחת המכונות שוכבת רע מאוד. אני נכנס לזה צופה ב cron נתקל בגיהינום של הרבה תהליכי זומבים (בערך סביב 50-60). לא הייתה סיכוי שאוכל להרוג את כולם איתם להרוג הכל אז הייתי צריך ליצור פיתרון קצת יותר מיומן לבעיה – לצייר אלמנטרי bash סקריפט לאיתור והריגה של תהליכים. 50-לא קל לכתוב PIDs ביד :ד. גירדתי את התסריט לרגע וזה פשוט מאוד, אבל זה עדיין ראוי לתשומת לב 🙂

בבסיסו המסוע

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

כאן אנו מקבלים גיליון עם כל ה- PIDs של התהליך שעלינו להרוג על ידי אי הכללת 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

יכול להיות “כִּונוּן” מכיוון שהשם נלקח כוויכוח על שם הסקריפט ולכן הוא נקרא כבינארי להפעלה. עם זאת, זה לא נוהג במיוחד להיות מקרים כה תכופים 😀 אבל זה אף פעם לא מונע מאיתנו להיות מוגנים מפני שום דבר

משופרת על ידי זמנטה

Leave a Reply

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

Anti SPAM *