পিতামাতাদের সাথে একটি <defunct> প্রক্রিয়া কীভাবে হত্যা করবেন


17

আমি একটি রেডহ্যাট বাক্সে বকুলা চালাচ্ছি। সময়ে সময়ে, স্টোরেজ ডেমন বেকুলা-এসডি কাজ করা বন্ধ করে দেয় <defunct>

[root@backup ~]# ps -ef | grep defunct | more
root      4801 29261  0 09:25 pts/5    00:00:00 grep defunct
root      5825     1  0 Oct18 ?        00:00:00 [bacula-sd] <defunct>

আমার প্রশ্ন, আমি এই প্রক্রিয়াটি কীভাবে হত্যা করব? এর পিতামাতারা 1, যা সূচনা হয়, যতদূর আমি জানি, এবং আমি আর আর ডি প্রক্রিয়াটি হত্যা করতে চাই না, আমি কি করব?

'সাধারণত' এই প্রক্রিয়াটি হত্যা করা কার্যকর হয় না:

[root@backup ~]# kill -0 5825
[root@backup ~]# kill -9 5825

সাহায্যের প্রশংসা করা হয়!

সম্পাদনা: চলমান

[root@backup ~]# lsof -p 5825

নিম্নলিখিত আউটপুট উত্পাদন করে:

COMMAND    PID USER   FD   TYPE  DEVICE     SIZE    NODE NAME
bacula-sd 5825 root  cwd    DIR   253,0     4096 3801089 /root
bacula-sd 5825 root  rtd    DIR   253,0     4096       2 /
bacula-sd 5825 root  txt    REG   253,0  2110599  368004 /usr/local/sbin/bacula-sd
bacula-sd 5825 root  mem    REG   253,0    75284  389867 /usr/lib/libz.so.1.2.3
bacula-sd 5825 root  mem    REG   253,0    46680 3604521 /lib/libnss_files-2.5.so
bacula-sd 5825 root  mem    REG   253,0   936908  369115 /usr/lib/libstdc++.so.6.0.8
bacula-sd 5825 root  mem    REG   253,0   125736 3606807 /lib/ld-2.5.so
bacula-sd 5825 root  mem    REG   253,0  1602128 3606885 /lib/libc-2.5.so
bacula-sd 5825 root  mem    REG   253,0   208352 3606892 /lib/libm-2.5.so
bacula-sd 5825 root  mem    REG   253,0   125744 3606887 /lib/libpthread-2.5.so
bacula-sd 5825 root  mem    REG   253,0    25940 3604573 /lib/libacl.so.1.1.0
bacula-sd 5825 root  mem    REG   253,0    15972 3604535 /lib/libattr.so.1.1.0
bacula-sd 5825 root  mem    REG   253,0    46548 3606908 /lib/libgcc_s-4.1.2-20080102.so.1
bacula-sd 5825 root  mem    REG   253,0 56422480  366368 /usr/lib/locale/locale-archive
bacula-sd 5825 root    0r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    1r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    2r   CHR     1,3             1545 /dev/null
bacula-sd 5825 root    3u   CHR   9,128             6469 /dev/nst0
bacula-sd 5825 root    4u  IPv4 1023380              TCP backup:bacula-sd (LISTEN)
bacula-sd 5825 root    5u  IPv4 2693268              TCP backup:bacula-sd->backup:53957 (CLOSE_WAIT)
bacula-sd 5825 root    7u  IPv4 3248683              TCP backup:bacula-sd->backup:57629 (CLOSE_WAIT)
bacula-sd 5825 root    8u  IPv4 3250966              TCP backup:bacula-sd->backup:37650 (CLOSE_WAIT)
bacula-sd 5825 root    9u  IPv4 3253908              TCP backup:bacula-sd->backup:37671 (CLOSE_WAIT)

উত্তর:


18

আপনি জম্বি / বিযুক্ত প্রক্রিয়াটি সরিয়ে ফেলতে পারার একমাত্র উপায়, পিতামাতাকে হত্যা করা হবে। যেহেতু পিতামাতা ইনিশ (পিড 1), তাই এটি আপনার সিস্টেমটিকেও নামিয়ে আনবে।

এটি আপনাকে দুটি বিকল্পের সাথে ছেড়ে দেয়।

  • প্রক্রিয়া সারণীটি ম্যানুয়ালি সংশোধন করুন, যেমন। একটি ডামি প্রক্রিয়া তৈরি করুন, ডামির শিশু হিসাবে অশুচি প্রক্রিয়াটি যুক্ত করুন, তারপরে তাদের হত্যা করুন। বেশ বিপজ্জনক, এবং আপনাকে ম্যানুয়ালি অন্যান্য প্রক্রিয়া সংস্থান যেমন সেমফোরস এবং ফাইল হ্যান্ডলগুলি পরিষ্কার করতে হতে পারে।
  • সিস্টেমটি পুনরায় বুট করুন।

আমি দ্বিতীয় সঙ্গে যেতে হবে।


2
+1 টি। তবে, যতক্ষণ না আরও বেশি জম্বি প্রক্রিয়া প্রদর্শিত হচ্ছে বা আপনার জম্বি প্রক্রিয়াটি আপনার র‌্যামের 4 জি লক করে রেখেছে ততক্ষণ তা করার কোনও তাড়া নেই। :)
কাইল স্মিথ

1
"যেহেতু পিতামাতা ইনিশ (পিড 1), এটি আপনার সিস্টেমটিকেও নিচে নেবে" - এতে initসিগ্কিলের সিগন্যাল হ্যান্ডলার না থাকায় আপনি হত্যা করতে পারবেন না । দেখুন man 2 kill
কাফল্যান্ডস

আপনি কিভাবে প্রথম না?
স্কিরিট

@ অ্যান্ড্রুএইচ আমি নিশ্চিত নই যে সিগ্কিল লক্ষ্য প্রক্রিয়াতে একটি সিগন্যাল হ্যান্ডলারের উপর নির্ভর করে, তবে এটি সত্য যে সাধারণ কার্নেল একটি সিগ্কিলকে উপেক্ষা করার জন্য উপেক্ষা করবে। তবে, কার্নেল আতঙ্ককে ট্রিগার করার জন্য আপনার যদি শীতল উপায়গুলি না ঘটে তবে আমি মনে করি আপনি বেশিরভাগ লিনাক্স সিস্টেমে একটি সিএসএসইজিভি খুব সুন্দরভাবে কাজ করবে।
রায়

1
এটি লক্ষ করা উচিত যে initজব্বি প্রক্রিয়াগুলির ফসল কাটাতে হ'ল একটির কাজ হ'ল তাই আপনি যদি দীর্ঘ অপেক্ষা initকরেন তবে জম্বি প্রক্রিয়াগুলি পরিষ্কার করা উচিত। যদিও, বেশিরভাগের initহ্যান্ডলারটি সেট SIGCHLDকরা উচিত SIG_IGN যা এটি ঠিক করে।
সাইফার

3

আপনি init পুনরায় আরম্ভ করার চেষ্টা করতে পারেন:

 # telinit u

না হলে আমি খুব বেশি চিন্তা করব না। এটি চলছে না এবং এটি কোনও সংস্থান নিচ্ছে না এবং এটি ঠিক সেখানে রয়েছে যাতে কার্নেল এটি মনে রাখতে পারে।


1
ভাল, আমি ধরনের চিন্তা করতে হবে। এটি ব্যাকআপ (ব্যাকুলা) এবং ভিওআইপি (অ্যাসিটার্ক) পরিষেবা চালিত একটি উত্পাদন মেশিন। যতক্ষণ না অবসন্ন ব্যাকুলা-এসডি প্রক্রিয়া রয়েছে ততক্ষণ বাকুলা টেপ ড্রাইভ অ্যাক্সেস করতে পারে না ...
Andreas-h

এটিতে কোনও ফাইল খোলা থাকা উচিত নয়। Lsof -p 5825 চালান এবং চেক করুন।
ডেভিড পাশলে

ঠিক আছে, অনেক কিছুই খোলা আছে বলে মনে হচ্ছে ... উপরে দেখুন। কোন ধারণা আমি কি করতে পারি? আমি কখনই lsof ব্যবহার করি নি ...
Andreas-h

1
হ্যাঁ, আপনার জম্বিটিতে / dev / nst0 খোলা আছে। একটি সিস্টেম রিবুট সম্ভবত এই সময়ে সেরা বাজি।
কাইল স্মিথ

5
হ্যাঁ, রিবুটটি প্রচলিত উত্তর বলে মনে হচ্ছে। আমি সর্বদা মনে করি যখন আমি কোনও সার্ভার পুনরায় বুট করতে হবে তখন আমি ব্যর্থ হয়েছি। :(
ডেভিড প্যাশলে

3

কোনও কার্নেল আতঙ্ক ছিল কিনা তা পরীক্ষা করে দেখুন,

# dmesg |tail

প্রক্রিয়াটি "ডি" অবিচ্ছিন্ন ঘুমে আছে কিনা তা পরীক্ষা করুন, যেখানে এটি কিছু সিস্টেমে কার্নেল মোডে রয়েছে যা এখনও ফিরে আসে নি (কার্নেল ওপস, বা অন্য কোনও কারণে) http://www.nabble.com/What-causes-an -unkillable প্রক্রিয়ার - td20645581.html


বিরক্তিকর ফর্ম্যাটিং
এসিডামিন

আসলে, কোনও কার্নেল আতঙ্ক হয়নি। প্রক্রিয়াটি 'জেড' রাজ্যে রয়েছে - একটি জম্বি ...
Andreas-h

3

যদি কোনও জম্বি তার অভিভাবক হিসাবে দীক্ষা করে থাকে, তবে আর ডি সঠিকভাবে কাজ করা বন্ধ করে দিয়েছে। আর ডি এর অন্যতম ভূমিকা হল জম্বিগুলি পরিষ্কার করা। যদি এটি না করে তবে আর কেউ করবে না। সুতরাং একমাত্র সমাধান হ'ল পুনরায় বুট করা। যদি ডিআই ভাঙা হয়, তবে একটি রিবুট ব্যর্থ হতে পারে, তাই আমি গুরুত্বপূর্ণ পরিষেবাগুলি বন্ধ করে দেব, ফাইল সিস্টেমটি সিঙ্ক করব তারপরে পাওয়ার বোতামটি চাপুন hit


আমি উদ্যোগটি সঠিকভাবে কাজ না করার বিষয়ে একমত। আরও দেখুন: upstartএবং systemd
মিক্কো রেন্টালাইনেন

2

আতঙ্ককে নিচে রাখি, আমরা কি করব? একটি "অচল" বা "জম্বি" প্রক্রিয়া কোনও প্রক্রিয়া নয় । এটি কেবল একটি সঞ্চিত প্রস্থান কোড সহ প্রক্রিয়া টেবিলটিতে কেবল একটি এন্ট্রি। সুতরাং, একটি জম্বি কোনও সংস্থান রাখে না, কোনও সিপিইউ চক্র নেয় না এবং কোনও মেমরি ব্যবহার করে না, কারণ এটি কোনও প্রক্রিয়া নয় । জম্বি প্রক্রিয়াগুলিকে "হত্যা" করার চেষ্টা করে সমস্ত অদ্ভুত এবং চুলকানি পেতে যাবেন না। তাদের নামের মতো, তারা হত্যা করা যাবে না, কারণ তারা ইতিমধ্যে মারা গেছে। তবে মস্তিষ্ক খাওয়ার ধরণের বিপরীতে এগুলি একেবারেই ক্ষতি করে না এবং অন্য প্রক্রিয়াগুলিকে কামড়ায় না।

জম্বি প্রক্রিয়াগুলি আপনার মস্তিষ্কটি খেতে দেবেন না। তাদের এড়িয়ে চলুন।


11
হ্যাঁ, এটি তত্ত্ব। দুর্ভাগ্যক্রমে এটি সর্বদা সত্য নয়। একটি অবিচ্ছিন্ন প্রক্রিয়া কখনও কখনও সিস্টেমের সংস্থানগুলিতে ঝুলবে যেমন অ্যান্ড্রেশ স্পষ্টভাবে নথিভুক্ত করেছে।
রায়

5
তার ক্ষেত্রে, lsof আউটপুট অনুযায়ী, জম্বি প্রক্রিয়াটি / dev / nst0 এর ব্রেইন খাচ্ছে। ব্যাকআপ ক্রিয়াকলাপ চালিয়ে যাওয়ার জন্য তার সেই মস্তিষ্কের প্রয়োজন।
কাইল স্মিথ

2
এমন একটি সিস্টেম অ্যাডমিনিস্ট্রেটর যিনি নিজের ক্যারিয়ারটি জম্বো প্রক্রিয়াগুলি উপেক্ষা করে অবশেষে মধ্যরাতে জেগে উঠবেন তাদের জীবন তাদের থেকে দূরে সরিয়ে নেওয়া হবে। আমার অভিজ্ঞতা অনুসারে একটি বোকচন্দর কিছু ভুল হওয়ার ইঙ্গিত দেয়। আমি এগুলি লিখি এমনকি একটি জম্বি সন্তানের তার পিতামাতার সাথে কিছু অদ্ভুত মিথস্ক্রিয়া রয়েছে এবং পিতা বা মাতা আমার সিপিইউ ঘুরছেন। কার দোষ তা আমি জানি না, তবে মূল কথাটি হ'ল লম্বুজগুলি কুৎসিত এবং সেগুলি উপেক্ষা করে একদিন আপনাকে হতাশ করবে। ... একদিন ... যখন আপনি শান্তিতে ঘুমাচ্ছেন ... রাতের মাঝামাঝি ... একটি শীতের শরতের দিন পরে ...
মাইক এস

@ মাইকস আপনার মন্তব্যটি শুনে আমি খুব ভালো হাসি পেয়েছি!
পল ক্যালাব্রো

@ মাইকের অধিকার আছে। আমার ssh- এজেন্টের অবনতি হয়েছে এবং ssh বা গিটটি সঠিকভাবে চলতে পারে না। শুধুমাত্র পুনঃসূচনা সাহায্য করতে পারে। (উইন্ডোজ যেমন ঠিক আছে ঠিক তেমন হাহা)
জন ট্রাইব

0

দেখে মনে হচ্ছে আপনি একটি অনাথ প্রক্রিয়া পেয়েছেন। যতদূর আমি জানি এগুলি মারার একমাত্র উপায় হ'ল বাক্সটি পুনরায় বুট করা। আমার ইএসএক্স সার্ভারগুলিতে (যা হুডের নীচে লিনাক্স রয়েছে) এ ঘটেছে এবং একটি হোস্ট রিবুট ঠিক করা (ভিএমওয়্যার সমর্থন থেকে)।

আমি একজন উইন্ডোজ লোক তাই এটির জন্য এটি গ্রহণ করুন।


দুর্ভাগ্যক্রমে, রিবুট করা আসল বিকল্প নয়। এটি একটি প্রোডাকশন মেশিনও ভিওআইপি পরিষেবা চালাচ্ছে, তাই অফিসের সময় আমি এটি পুনরায় চালু করতে পারি না ...
Andreas-h

1
সুতরাং, আপনি অফিস সময় পরে এটি পুনরায় বুট করতে পারেন, তাই না?
ওয়ারেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.