পুনরায় চালু হতে থাকে এমন একটি প্রক্রিয়া হত্যা করুন


16

যদি 'কিল -9' কাজ না করে? বা নতুন প্রক্রিয়া শুরু করে এমন স্ক্রিপ্টকে কীভাবে হত্যা করব? যাইহোক আমাকে সাহায্য করে না।

আমার কাছে পাইথন স্ক্রিপ্ট রয়েছে যা একই পোর্টটি ব্যবহার করে হত্যা করার সময় অন্য প্রসেস আইডি দিয়ে স্বয়ংক্রিয়ভাবে শুরু হয়sudo kill -9 <pid>

$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  13242 ubuntu    3u  IPv4  64592      0t0  TCP localhost:3002 (LISTEN)
$ sudo kill -9 13242
$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16106 ubuntu    3u  IPv4  74792      0t0  TCP localhost:3002 (LISTEN)
$ sudo kill 16106
$ lsof -i :3002
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16294 ubuntu    3u  IPv4  75677      0t0  TCP localhost:3002 (LISTEN)

এটি কোনও জম্বি প্রক্রিয়া নয়।

$ ps -Al

4 S     0 16289     1  0  80   0 - 12901 poll_s ?        00:00:00 sudo
4 S  1000 16293 16289  0  80   0 -  1100 wait   ?        00:00:00 sh
0 S  1000 16294 16293  0  80   0 - 34632 poll_s ?        00:00:00 python

আমি এমনকি sudo pkill -f <processname>ভাগ্য ছাড়া চেষ্টা করেছি । এটি মরতে চায় না।

হালনাগাদ:

উপরের সারণীতে যেমন উল্লেখ করা হয়েছে shতার পিতামাতার প্রক্রিয়া sudo। হঠাৎ করে এগুলি হত্যা করা নিরাপদ কিনা তা আমি নিশ্চিত নই। এছাড়াও এটি একটি শেয়ার্ড উবুন্টু সার্ভার।


দেখে মনে হচ্ছে এটি ঠিক মারা যাচ্ছে। আপনার lsofআউটপুট প্রতি একক সময় একটি নতুন পিড দেখায়। প্রক্রিয়াটি কেবল পুনরায় আরম্ভ হচ্ছে।
প্যাট্রিক

হ্যাঁ এটি চিরতরে মরতে চায় না। জেগে ওঠেনি যেমন কখনও মারা যায় না :(
লক্ষ্মীনারায়ণ গুপ্ত

উত্তর:


26

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

মনিটর প্রক্রিয়াটি সন্ধান করার জন্য আপনাকে পুরো প্রক্রিয়া তালিকাটি পরীক্ষা করতে হবে কারণ প্রকৃত শ্রোতারা তাদের পিতামাতার কাছ থেকে নিজেকে বিচ্ছিন্ন করতে পারে (সাধারণত fork() + setsid()কম্বো দ্বারা )। এই ক্ষেত্রে, আমি খুঁজে পাই ps faux( procpsকমপক্ষে, অন্যান্য বাস্তবায়নের জন্য পৃথক হতে পারে) এর ফলস্বরূপ সহজে - এটি একটি শ্রেণিবিন্যাসের গাছের সমস্ত প্রক্রিয়া তালিকাভুক্ত করে। যদি কোনও পিআইডি মোড়ানো না থাকে ( উইকিপিডিয়া দেখুন ), মনিটরের পিআইডি কোনও শ্রোতার পিআইডি এর চেয়ে ছোট হওয়া উচিত (অবশ্যই যদি আপনি কোনও পিআইডি-মোড়ক মারেন না)।


এর পিতামাতা shযার পিতা বা মাতা sudo। তাদের হত্যা করা কি ঠিক আছে?
লক্ষ্মীনারায়ণ গুপ্ত

কোন প্রক্রিয়ার জনক? 3002 বন্দরে শুনছেন? সেক্ষেত্রে সমস্ত প্রক্রিয়া তালিকাভুক্ত করুন এবং অনুমান করুন কোনটি মনিটর। লিনাক্স সহ procps, আমি সাধারণত আউটপুটটি ps -fauxযথেষ্ট তথ্যবহুল হতে পারি। আরও মনে রাখবেন, মনিটরের পিআইডি প্রকৃত শ্রোতার পিআইডি এর চেয়ে ছোট হওয়া উচিত (যদি না আপনি কিছু সময়ের জন্য সিস্টেম আপ না করেন এবং পরিষেবাটি অবশ্যই চালু হওয়ার পরে ইতিমধ্যে পিআইডি আবৃত না থাকে)।
পিটারফ

গ্রেট। ps -fauxপিতামাতার কাছ থেকে হত্যা শুরু করতে সহায়তা করেছিল। আপনি মন্তব্য থেকে সমাধান সঙ্গে আপনার উত্তর আপডেট করতে পারেন?
লক্ষ্মীনারায়ণ গুপ্ত

হ্যাঁ, আমি এটি নিয়ে ভাবছিলাম ... :)
পিটারফ

ps fauxsupervisordকোনটি অবিচ্ছিন্নভাবে
লারাভেল

4

আপনি যদি প্রক্রিয়াটির শ্রবণ পোর্টটি জানেন তবে আপনি পতাকা fuserসহ ব্যবহার করতে পারেন -k

কিছুটা এইরকম,

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