پروسه زامبی (zombie process) بی پدر مادر نیست!

بعد از جلسه گروه کاربران لینوکس تبریز، روز یکشنبه که آخر جلسه دوستمون یاشار عزیز سوالی مطرح کرد که پروسه‌های زامبی چه جوری kill میشن و … یه چند روزی بود که تو تعریف و مفهوم این پروسه‌ زامبی مونده بودم و به اشتباه، این پروسه رو با پروسه orphan (یتیم) اشتباه می‌گرفتم, رفتم سراغشون و البته جادی عزیز, واقعن عالی راهنماییم کرد. من همیشه ممنونشم. حالا بریم ببینیم چی هستن این پروسه‌های زامبی و چه جوری پیداشون کنیم و …

پروسه زامبی
پروسه زامبی

پروسه زامبی در لینوکس، (zombie process)

در سیستم عامل‌های یونیکس و شبیه این, پروسه(procces) زامبی (zombie) به پروسه‌ای گفته میشه که اجراش تموم شده ولی هنوز در جدول پروسه،  ورودی داره (تو procces table هستش). به این معنی که پروسه مادر(parent) این پروسه باید وضعیت خروجی فرزند(child) رو ببینه. و این اسم زامبی (انسان هایی که هنوز کامل نمردن) به این دلیل به این پروسه‌ها تلقی میشه، چون تموم شدن ولی نتیجه تموم شدنشون هنوز به مادر نرسیده.
وقتی پروسه‌ای تموم میشه، تمام حافظه و منابعی که بهش تعلق داشته ازش گرفته میشه تا در اختیار پروسه دیگه‌ای گذاشته بشه. هر چند که process’s entry در جدول پروسه‌ها باقی میمونه. مادر میتونه وضعیت خروجی فرزند رو با اجرا کردن فراخوان wait() بخونه و در نتیجه پروسه زامبی حذف میشه. فراخوان wait() ممکنه به صورت دوره‌ای اجرا بشه ولی معمولن وقتی اجرا میشه که سیگنالی از طرف فرزند به مادر برسه (SIGchild) مبنی بر اینکه پروسه فرزند به هردلیلی دیگه اجرا نمیشه.
وقتی که پروسه زامبی حذف شد PID و entry تو جدول پروسه آزاد میشن و میتونن دوباره مورد استفاده قرار بگیرن. اگه مادر نتونه فراخوان wait رو اجرا کنه پروسه زامبی تو جدول پروسه‌ها میمونه و این تو بعضی موارد میتونه خوب باشه، مثل وقتی که مادر یه پروسه فرزند دیگه‌ای اجرا کنه و مطمئن هست که PID پروسه فرزند جدید، با قبلی یکی نیست.(PID جدید میگیره).
پروسه زامبی همان پروسه یتیم(orphan process) نیست . پروسه یتیم – بی پدر و مادر یا بی والد – پروسه‌ای هست که در حال حاضر داره اجرا میشه ولی والدش دیگه نیست, اینها پروسه زامبی نمیشن در عوض توسط (init (process ID 1 به فرزندی گرفته میشوند .

خوب وقتی تو ترمینال دستور top رو بزنیم میتونیم تو قسمت جلوی task ببینیم که چند تا پروسه زامبی داریم. یا با دستور ps aux | awk ‘{ print $8 ” ” $2 }’ | grep -w Z هم میتونیم کل پروسه‌های زامبی رو ببینیم.
برای حذف این پروسه‌ها از این دستور kill -9 PID استفاده میکنیم تا kill بشه و SIGchild به مادر برسه و اگه مادر نتونست این سیگنال رو دریافت کنه مجبور میشیم مادر رو kill کنیم تا این پروسه زامبی به فرزندی init در بیاد و init فراخوان wait رو پی در پی اجرا میکنه تا وضعیت پایان یافتن زامبی‌ها رو بگیره.

برای مثال این یه برنامه تولید کننده زامبی هست . رو سیستم‌اتون gcc رو نصب کنید و این فایل روکامپایل و بعد اجرا کنید.

کد ایجاد پروسه زامبی (zombie process)
کد ایجاد پروسه زامبی

امیدوارم همونقدر که برای من مفید بود برای شما هم مفید باشه .
مشتاق علم باشیم و همیشه خندون 🙂

ویرایشگر صوتی Audacity

گفته بودم که اومدم رو Trisquel یه توزیع عجیب و دوست داشتنی به خصوص برای حضرت استالمن . من قبلن برای کارای صوتی مثلن ضبط و … از نرم افزار Cool Edit استفاده میکردم و الان رو این توزیع از Audacit  استفاده میکنم.

Audacity
Audacity

تو لینوکس توزیع های Ubuntu , Fedora, Gentoo و SuSE رو پشتیبانی میکنه و برای منی که یکی از توزیع های ابونتو رو استفاده میکنم بسته نصبیش تو مخازن هست.
البته اینو بگم که من اولش ندیدم که تو مخزن هست و دانلودش کردم و برا نصب از من کامپایلر C++ خاست و بعدن دوباره WxWidget رو و همینجوری مشغول دانلود و نصب این و اون بودم که یکهو دیدم بعله تو مخازن هست و رفتیم apt-get و الان خوشحال از نصب و استفاده این نرم افزار عالی. و خوشحال تر از این کوچ دوباره و امید به دایمی بودنش 🙂

اینم بگم که فقط واسه لینوکس نیست و ویندوز و مک هم میتونن ورژن خودشونو از این نرم افزار نصب کنن.

نرم افزار کنترل از راه دور در لینوکس

من دارم دوباره از لینوکس ایندفعه توزیع ترایسیکل (Trisquel) بر اساس اوبونتو استفاده میکنم.

Trisquel-logo
Trisquel-logo

ادامه خواندن نرم افزار کنترل از راه دور در لینوکس

نقشه برج های مخابرات و اکسس پوینت های موزیلا

خوب موزیلا داره از برج های مخابرات و اکسس پوینت های عمومی نقشه برداری میکنه. این لینک دیتای نقشه رو ببینین.
برای همین منظور نرم افزار موبایل Moz Stumbler رو نوشتن و شما میتونین از GitHub دانلودش کنین و رو گوشیهاتون نصبش کنین. و وقتی دارین این طرف و اونطرف میرین این برنامه رو اجرا کنین و اجازه بدین اسکن کنه و بتونه نقشه موزیلا رو کامل کنه.
نقشه رو دیدین دیگه تا الان 🙂 میبینین که پوشش دیتا تو ایران کم هست.
من دانلودش کردم و معمولن در حال اسکن کردن هستش.

لینک تخفیف میدین واقعن؟؟؟

مسئول محترم همایش X (منظور نمیخام نام ببرم), واقعن چی فکر میکنین پیش خودتون؟ هزینه از 250 هزار به 175 میرسه با تخفیف 30 درصد, بعدش یه سری سایتها الکی میزنن که اگه از سایت ما ثبت نام کنین میشه 150 تومن, بعد تخفیف 60% میدین و هزینه میشه 100 تومن .بعد سخنراناتون رو طی یک شب سریعن عوض میکنین چون پول همایش جور نشده و نتونستین سخنرانی رو که از خارج قرار بوده بیاد رو بیارین یا هر دلیل دیگه ای,  همه اینا یه طرف میاین طرح تخفیف 80% میزنین  برای افرادی که درخواست ترجمه 10 صفحه فلان کتاب رو میدن. در صورتی که اصلن نیازی به اون ترجمه نبوده و لینک رو همه میتونن به همه بدن. این چه جور همایش برگزار کردن هستش؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

نه واقعن الان خوشحالین دارین همایش برگزار میکنین, منو باش که پیش خودم میگم این تخفیف حقم نیست . یه لحظه با خودتونم فکر نمیکنین دارین مردم رو بازی میدین؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

واقعن یه لحظه به حال و روز افرادی که با  250 یا 175 ثبت نام کردن فکر نمیکنین که خیلی راحت سخنران عوض میکنین؟ ای بابا به قول دوستمون هر لحظه ممکنه به منم زنگ بزنن بگن یه مقاله بفرست و بیا سخنران شو.

همایش X  هم منظورم UX  تهران هستش.

دارم چیارو به کیا میگم.

این یه چشم انداز کوچیک از شروع ثبت نام تا مهلت آخر همایش تجربه کاربری تهران هستش. جالبه. کلن ما ایرانیا خوشحالیم. بیخودیم . احترام سرمون نمیشه و همچنین شخصیت افراد برامون مثل یه تیله بازی میمونه .