انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: سید مسعود امامیان در 29 دی 1391، 11:28 ق‌ظ

عنوان: در مورد دستور kill - حل شد.
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 11:28 ق‌ظ
سلام دوستان

چه موقع یک پروسه رو نمی توان با دستور kill از بین برد ؟ اینطور که من فهمیدم پروسه هایی که حالت
Zombie (http://en.wikipedia.org/wiki/Zombie_process)
به خودشون گرفته اند فقط قابل کشتن نیستن به غیر از این پروسه ها پروسه ی دیگه ای هم غیرقابل کشتن هست؟
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: alend در 29 دی 1391، 11:47 ق‌ظ
مطمنید که با سیگنال ۹ هم کشته نمی شوند؟
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 11:59 ق‌ظ
مطمنید که با سیگنال ۹ هم کشته نمی شوند؟

منظورم از این که قابل کشتن نیستن این که این پروسه ها مردن و پروسه مرده رو نمی شود کشت و فقط در  جدول پروسه ها (http://en.wikipedia.org/wiki/Process_table) نمایش داده میشن  !

نمی دانم پروسه ای هست که حتی در شدیدترین حالت هم کشته نشود یا نه !
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: alend در 29 دی 1391، 12:47 ب‌ظ
http://www.cyberciti.biz/tips/killing-zombie-process.html
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 02:12 ب‌ظ
http://www.cyberciti.biz/tips/killing-zombie-process.html

خب من تست کردم و هنوز اون پروسه ها در دستور top دیده می شدند .

شما هم تست کنید ببینید تاثیری دارند ؟!

-----
آیا پروسه ای هست که نتوان با دستور kill از بین برد ؟
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: امین - am1n در 29 دی 1391، 03:13 ب‌ظ
فکر میکنم باشه. پردازش ها ممکنه به حالت "uninterruptible sleep"  برن . حالتی که منتظر یه عمل i/o هستن. مثلا یه پردازش منتظر پاسخ دیسک می مونه . "فکر میکنم" در این حالت میره به sleep و مدت کوتاهی صبر میکنه تا دیسک جواب بده. حالا اگه دیسک تونست با موفقیت جواب بده که هیچی،اگه نتونست ممکنه به پردازش بگه که نتونستم فلان کار رو بکنم . ولی یه حالت است که i/o خودش کارش گیر کرده (مثل بد سکتور) . تو این حالت هیچ پاسخی نداره و پردازش هم تو همون حالت sleep می مونه . تو این حالت پردازش هایی که پدرشون init باشه دیگه سیگنال نمی گیرن .
اساسا zombie ها پردازش های واقعی نیستن که بخوان kill بشن  ;)
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: alend در 29 دی 1391، 03:16 ب‌ظ
نه کار نکرد مثل اینکه باید ریشه کنشان کرد!
http://www.pbidir.com/
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 05:08 ب‌ظ
فکر میکنم باشه. پردازش ها ممکنه به حالت "uninterruptible sleep"  برن . حالتی که منتظر یه عمل i/o هستن. مثلا یه پردازش منتظر پاسخ دیسک می مونه . "فکر میکنم" در این حالت میره به sleep و مدت کوتاهی صبر میکنه تا دیسک جواب بده. حالا اگه دیسک تونست با موفقیت جواب بده که هیچی،اگه نتونست ممکنه به پردازش بگه که نتونستم فلان کار رو بکنم . ولی یه حالت است که i/o خودش کارش گیر کرده (مثل بد سکتور) . تو این حالت هیچ پاسخی نداره و پردازش هم تو همون حالت sleep می مونه . تو این حالت پردازش هایی که پدرشون init باشه دیگه سیگنال نمی گیرن .
اساسا zombie ها پردازش های واقعی نیستن که بخوان kill بشن  ;)
بله درست هست و در کتاب LPIC-1_In_Nutshell_Oreilly_Edition3 همیچین مطلبی دیده میشه :

When a process is blocked waiting for I/O, such as trying to write
to an unavailable NFS server or waiting for a tape device to complete rewinding, the KILL signal
may not work.
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: امین - am1n در 29 دی 1391، 05:19 ب‌ظ
بله درست هست و در کتاب LPIC-1_In_Nutshell_Oreilly_Edition3 همیچین مطلبی دیده میشه :

When a process is blocked waiting for I/O, such as trying to write
to an unavailable NFS server or waiting for a tape device to complete rewinding, the KILL signal
may not work.
آها اره دقیقا  ;)
ینی جواب سوال بود دیگه ؟  ;D
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 06:01 ب‌ظ
همه ی این بحث ها در مورد Zombieها بود و هنوز برای سوالم جواب نگرفتم :

آیا پروسه ای هست که نتوان با دستور kill از بین برد ؟
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: امین - am1n در 29 دی 1391، 06:41 ب‌ظ
همه ی این بحث ها در مورد Zombieها بود و هنوز برای سوالم جواب نگرفتم :

آیا پروسه ای هست که نتوان با دستور kill از بین برد ؟
نههه دیگه ، اشتباهت همین جاست ;)
پراسس های zombie چون درواقع پراسس نیستن پس نمیشه killشون کرد! این قبول ...
ولی پراسس هایی که منتظر i/o هستن که اصن zombie حساب نمی شن ! ینی جواب سوال شمام همین میشه.
این پردازشا عملا تو سیستم وجود دارن (ینی executing هستن) و فقط منتظر چیز دیگه ای موندن. اما در حالتی نیستن که بشه kill بشن . فقط در یه حالت میشه . پدرشون رو kill کرد. که اگر پدرشون init باشه اصلا نمیشه .

پس تا اونجایی که من اطلاع دارم، یا باید zombie باشه یا باید uninterruptible باشن  ;)
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: سید مسعود امامیان در 29 دی 1391، 06:53 ب‌ظ
بسیار عالی.
حل شد .

+1
عنوان: پاسخ : در مورد دستور kill
ارسال شده توسط: امین - am1n در 29 دی 1391، 09:02 ب‌ظ
بسیار عالی.
حل شد .

+1
از این سوالا داشتی خوبه بگی  :D  آخه من خودمم اولش نمی دونستم پردازش های zombie توی جدول پردازش ها وجود دارن ولی عملا پردازش به حساب نمیان  ;)
عنوان: پاسخ : در مورد دستور kill - حل شد.
ارسال شده توسط: alieblice در 29 دی 1391، 10:05 ب‌ظ
البته ممکن به این روش هم zombie بشن.
 مثلا یک پروسس که صاحب چند پروسس دیگر هم هست  رو شما میاین kill می کنین . وقتی پروسس مادر kill بشه ولی child proccess ش از بین نره (در این حالت بی پرد مادر میشه) خوب پس کرنل میاد تبدیلش میکنه به zombie بعد میاد بهش یک مادر هم میده که میشه پروسس شماره یک یا همون init که دوستمون در بالا گفتن.