با برنامه‌های هنگ کرده لینوکس چه کنیم؟ (قسمت اول)

توی لینوکس مثل هر سیستم‌عاملی امکان این وجود داره که برنامه‌هاتون (یا به اصطلاح جامع‌تر پروسه‌هاتون) هنگ کنن و نیاز باشه که یه آستینی بالا بزنید و سیستمتون رو نجات بدین

this window is not responding!
this window is not responding!

یک دروغ بزرگ!

یک دروغ نانوشته وجود داره با این مضمون که لینوکس Task Manager نداره ( البته خب اگه منظورتون یه چیزی دقیقا کپیِ Windows Task Manager هست، تقریبا حق باشماست ? )

تند نرید! اگه با همین فرمون برید جلو باید بهتون بگم ته این مسیر به این نتیجه میرسید که لینوکس هیچی نداره الّا یه ترمینال که فقط هکرا ازش سردرمیارن!

اگه یه مقدار با خانواده قدرتمند لینوکس کار کرده باشید، می‌دونید که این سیستم‌عامل یه هسته قدرتمند رو در اختیار ما میذاره و به ما اجازه میده با استفاده از خط فرمان (به قول ما ترمینال) از قابلیت‌هاش استفاده کنیم؛ ولی اگه به محیط خط فرمان علاقه‌ای ندارید میتونید با استفاده از برنامه‌های ثالث ( منظورم برنامه‌هایی هست که دیگران تولید کردند و به طور پیش‌فرض روی سیستم عامل نصب نیست) کاراتون رو پیش ببرید. در ادامه هر دو روش رو بررسی و مقایسه می‌کنیم.

روش خط فرمان

توی این روش بر خلاف اسم ترسناکش، روش کار خیلی آسونه. البته کلا کار توی این محیط به علت قاعده‌مند بودن، از محیط گرافیکی راحت‌تره؛ لااقلاً برای من.

خب بریم سراغ کار عملی. شما برای بستن پروسه‌ی مشکل‌دار دو مرحله دارید:

۱- پیدا کردن پروسه و ID آن: با دستور زیر پروسه‌ی مد نظرتون رو پیدا کنید:

ps -aux | grep APP_NAME

که به جای APP_NAME اسم برنامه‌تون رو بنویسید. اگه اسم کامل برنامه موردنظر رو نمی‌دونید نگران نباشید. همون مقدار از اسمشو میدونید وارد کنید؛ دلیلشو بعداً براتون میگم. البته مستحضرید که لینوکس به بزرگی و کوچیکی حروف حساسه. (اونجا حواستون جمع باشه)

شاید بپرسید این کد چی بود.

- دستور ps -aux : تمام پروسه‌های در حال اجرا رو بهمون میده ( به همراه خیلی جزئیات دیگه)

- قسمت | grep APP_NAME : خروجی دستور قبلی رو با کلمه‌ی APP_NAME فیلتر میکنه.

خروجی دستور یه چیزی شبیه اینه

user1      23405  0.1  0.8 1034472 53096 ?       Ssl  20:43   0:03 /usr/bin/APP_NAME
user1      23882  0.0  0.0  12160  2664 pts/1    S+   21:16   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox APP_NAME

خط دوم رو فراموش کنید. بریم سراغ خط اول. قسمت دوم یه عدده که ID برنامه رو نشون میده (همونه که بولد نشونش دادم). اونو به خاطر بسپارید.

۲- پایان دادن به پروسه‌ی ناموفق:

دستور زیر را وارد کنید:

kill 23405

که صد البته به جای این عدد باید آی دی برنامه مورد نظر رو وارد کنید.

با یه دونه مثال کار راحت‌تر میشه. فرض کنید یه کار گرافیکی سنگین داشتید و الآن برنامه‌ی inkscapeتون هنگ کرده.

مرحله اول - یافتن آی دی برنامه inkscape
مرحله اول - یافتن آی دی برنامه inkscape
مرحله دوم - خاتمه دادن به پروسه‌ی مزاحم
مرحله دوم - خاتمه دادن به پروسه‌ی مزاحم

فکر میکنم همه چیز از روی عکس‌ها مشخص باشه و نیاز به توضیح دادن نباشه.

روش دوم، روش محبوب کسانیه که تازه از ویندوز مهاجرت کردن یا علاقه به محیط‌های گرافیکی دارند هستش که در مقاله بعدی مفصلاً بهش می‌پردازیم.

منتظر پستای بعدی باشید. یاعلی