শীর্ষে / htop এ প্রক্রিয়াগুলির একটি গাছ হত্যা করা


12

এইচটিপি আমাকে শেলের মধ্যে প্রক্রিয়াগুলির গাছগুলি সুন্দরভাবে দেখতে দেয়। আমি টিপে প্রক্রিয়াগুলি মেরে ফেলতে পারি F9 (KILL)এবং তারপরে কোন সিগন্যালটি নির্বাচন করে (উদাহরণস্বরূপ 15 SIGTERM) আমি কোনও কাজের জন্য পাঠাতে চাই want

তবে এটি আমাকে একবারে একটি প্রক্রিয়া মেরে ফেলতে দেয়। ব্যবহারের প্রক্রিয়াগুলির একটি সম্পূর্ণ গাছকে মেরে ফেলার কোনও উপায় আছে কি htop?

উত্তর:


16

থেকে man htop:

ইন্টারেক্টিভ কম্যান্ডস

স্পেস ট্যাগ বা একটি প্রক্রিয়া আনট্যাগ করুন। "কিল" এর মতো একাধিক প্রক্রিয়াতে পরিচালনা করতে পারে এমন কমান্ডগুলি বর্তমানে হাইলাইট হওয়া পরিবর্তে ট্যাগযুক্ত প্রক্রিয়াগুলির তালিকার উপর প্রয়োগ করবে

ইউ ট্যাগমুক্ত সকল প্রক্রিয়ার (সমস্ত ট্যাগ স্পেস কী দিয়ে যোগ সরাতে)।

এফ 9, কে "কিল" প্রক্রিয়া: একটি মেনুতে নির্বাচিত সিগন্যালটি এক বা একাধিক প্রক্রিয়াতে প্রেরণ করে। প্রসেসগুলি ট্যাগ করা থাকলে, সমস্ত ট্যাগ করা প্রক্রিয়াগুলিতে সংকেত প্রেরণ করে। যদি কোনওকে ট্যাগ করা না হয় তবে বর্তমানে নির্বাচিত প্রক্রিয়াটিতে প্রেরণ করে।

আপনি যে উত্তরটি সন্ধান করেছিলেন তা পুরোপুরি নয়, তবে কাছে। আপনি প্রসেস গ্রুপ বা কিল দিয়ে বাচ্চাদেরও নির্মূল করতে পারেন, দেখুন:

/programming/392022/best-way-to-kill-all-child-processes


1

হটোপ ম্যানপেজ থেকে:

এফ 5, টি ট্রি ভিউ: পিতৃত্বের দ্বারা প্রক্রিয়াগুলি সংগঠিত করুন এবং গাছের মতো তাদের মধ্যে সম্পর্কের বিন্যাস করুন। কীটি টগল করা গাছ এবং আপনার পূর্বে নির্বাচিত বাছাই করা ভিউয়ের মধ্যে স্যুইচ করবে। বাছাই করা ভিউ নির্বাচন করা গাছের দর্শন থেকে বেরিয়ে আসবে।

সুতরাং F5 টিপুন এবং আপনাকে তখন 'টি' চাপতে হতে পারে। এটি আপনাকে পুরো গাছটি মারতে দেবে।


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

আমি একেবারে সম্মত, যদিও এটি জড়িত প্রক্রিয়াগুলির উপর কঠোরভাবে নির্ভর করে। একটি ssh ট্রি অধিবেশন হত্যার ফলে অন্তর্নিহিত বাচ্চাদের হত্যা করবে উদাহরণস্বরূপ; তিনি কেন পুরো গাছটি মেরে ফেলতে চেয়েছিলেন সে সম্পর্কে ওপি বিশেষভাবে নির্দিষ্ট ছিল না।
স্টিফান

1

আপনি হাইজ্যাক করতে পারে htop'র sকমান্ড। ইন htop, sটিপছে strace -p <the-pid-of-the-selected-process>

তারপরে আপনি যা করতে পারেন তা হ'ল একটি straceকমান্ড তৈরি করুন যা এর মধ্যে এমন কিছু রয়েছে:

#! /bin/sh -
pids=$(ps -eo pid= -o ppid= |
  awk -v exclude="$PPID" -v pid="$2" '
    function descends(p) {
      if (p == exclude) return 0
      if (p == pid) return 1
      if (p <= 1) return 0
      return descends(parent[p])
    }
    { parent[$1]=$2 }
    END {
      for (p in parent)
        if (descends(p))
         print p
    }'
)
if [ -z "$pids" ]; then
  echo >&2 "No process found to kill"
else
  echo >&2 Killing $pids
  kill $pids
fi

এবং এটিকে কিছু ডিরেক্টরিতে ~/.htop-hijackরাখুন এবং এইচটিউপকে কল করুন:

PATH=~/.htop-hijack:$PATH htop

তারপরে, টিপে sপরিবর্তে সেই আদেশটি শুরু করা হবে strace(পরে আপনাকে মূল স্ক্রিনে ফিরে আসতে Esc চাপতে হবে)।


1

এটির জন্য একটি দীর্ঘকাল ধরে একটি বৈশিষ্ট্য রয়েছে, তবে এটি ম্যানুয়াল থেকে 2018 অবধি অনুপস্থিত ছিল: cবর্তমানে হাইলাইট হওয়া প্রক্রিয়াটি এবং এর সাথে সমস্ত শিশুদের নির্বাচন করতে কী টিপুন । তারপরে নির্বাচিত প্রক্রিয়াগুলির (যেমন kকী ব্যবহার করে একটি হত্যা ) প্রক্রিয়াকরণগুলি প্রক্রিয়া এবং এর শিশুদের ক্ষেত্রে প্রযোজ্য।

এটি যদিও পারমাণবিক নয়। যদি আপনি নতুন বাচ্চাদের টিপানোর মুহুর্তের মধ্যে cএবং কার্নেলটি সমস্ত প্রক্রিয়াটিকে হত্যা করার মুহুর্তের মধ্যে ছড়িয়ে পড়ে তবে তাদের হত্যা করা হবে না এবং সম্ভবত ইআরসি প্রক্রিয়াতে পুনরায় যুক্ত হওয়ার সম্ভাবনা রয়েছে। এর কারণ হটপ নির্বাচিত প্রক্রিয়াগুলি লুপ করছে এবং একে একে একে হত্যা করছে।

আমি কিছুক্ষণ আগে এইচটিউপিটিতে একটি পারমাণবিক গ্রুপ-হত্যার বৈশিষ্ট্য যুক্ত করার জন্য একটি প্যাচ প্রস্তাব করেছি , তবে এটি একীভূত হওয়ার জন্য এটি বাস্তবায়নের পক্ষে যথেষ্ট sensকমত্য ছিল না। এটির সাহায্যে এইচটিপি থেকে পরমাণুভাবে একটি সম্পূর্ণ প্রক্রিয়া গোষ্ঠীটিকে হত্যা করা সম্ভব। এটি পুরো গাছকে হত্যার মতো নয়, তবে আফাইক, কার্নেল পারমাণবিকভাবে একটি স্বেচ্ছাসেবক গাছকে হত্যা করার কোনও উপায় সরবরাহ করে না।

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