চলমান টার্মিনাল প্রোগ্রামের প্রসেস আইডি (পিআইডি) কীভাবে সন্ধান করবেন?


116

আমি টার্মিনালে একটি প্রোগ্রাম চালাচ্ছি যা দিয়ে আমি পালাতে পারি না Ctrl- Cএবং আমি হত্যা করতে চাই। আমি এর পিআইডি কীভাবে খুঁজে পাব?


1
এটি উবুন্টু জমে গেলে আমার কী করা উচিত তার একটি শাখা ? এই প্রশ্নে বিশদটি খুব প্রযুক্তিগত থেকে রোধ করার জন্য একটি রেফারেন্স হিসাবে।
জেজেদ

একটি পিডোফ কমান্ড আছে।
neverMind9

উত্তর:


127

অন্য একটি টার্মিনাল খুলুন এবং চালান ps ax | grep fooযেখানে প্রতিক্রিয়াবিহীন প্রোগ্রামটির নাম run এটির এমন কিছু দেখায় এমন আউটপুট একটি লাইন ফিরে আসে:

$ ps ax | grep firefox
2222 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox
2231 ?        Sl   514:36 /usr/lib/firefox-3.6.9/firefox-bin
30290 pts/2    S+     0:00 grep --color=auto firefox

আউটপুট প্রতিটি লাইনের প্রথম ক্ষেত্রটি এমন একটি সংখ্যা যা মিলিত প্রোগ্রামের প্রসেস আইডি উপস্থাপন করে grep(আপনি শেষটি নিরাপদে উপেক্ষা করতে পারবেন, যা grepনিজেকে উপস্থাপন করে।

আপত্তিজনক প্রক্রিয়া থামাতে, করুন: kill pidযেখানে পিড হ'ল প্রোগ্রামটির প্রসেস আইডি। কোনটি ম্যাচ এডিট করা দরকার সে সম্পর্কে আপনাকে নিজের রায় killব্যবহার করতে হতে পারে অথবা আপনি তার topপরিবর্তে ব্যবহার করতে পারেন । killনিজেই ব্যবহার করা সাইনটারম প্রেরণ করে, যা আপনাকে প্রথমে চেষ্টা করা উচিত কারণ এটি প্রোগ্রামটিকে নিজের পরে সঠিকভাবে পরিষ্কার করার অনুমতি দেয়। SIGTERM ব্যর্থ হলে, SIGHUP, যা stonger ঔষধ দেখুন: kill -HUP pid। অন্য সমস্ত কিছু যদি ব্যর্থ হয়, সিক্কিল পাঠান। তবে, আপনার কেবল এটিই শেষ অবলম্বন হিসাবে করা উচিত, কারণ সিগ্কিলের ফলে ক্লিনআপের কোনও সম্ভাবনা ছাড়াই তাত্ক্ষণিকভাবে কার্নেলটি প্রক্রিয়াটি বন্ধ করে দেওয়া হয়। এর ফলে ডেটা দুর্নীতি বা অন্যান্য সমস্যা দেখা দিতে পারে। সুতরাং আবার, কেবলমাত্র একটি শেষ অবলম্বন হিসাবে সিকিল পাঠান। এটি করতে, করুন kill -KILL pidবা kill -9 pid

আপনি যদি গ্রাফিকাল ইন্টারফেসটি চালাচ্ছেন তবে অবশ্যই কাজটি করার জন্য আপনাকে এই ক্রেজিড কমান্ড-লাইন স্টাফ দিয়ে বোকা বানাতে হবে না। কেবল "সিস্টেম মনিটর" খুলুন, প্রসেসগুলি ট্যাবে নেভিগেট করুন, আপনি যে প্রক্রিয়াটি থামাতে চান তা চয়ন করুন (এইচএম, এটি 90% সিপিইউ ব্যবহার করে এমন হতে পারে?) এবং এটিকে ডান ক্লিক করুন। যেহেতু প্রক্রিয়া ইতিমধ্যে বন্ধ হয়ে গেছে, (সমস্যাটি তাই না?) ফলাফল মেনু থেকে শেষ প্রক্রিয়া বা কিল প্রক্রিয়াটি বেছে নিন।

কোয়ানহেডে ক্রেডিট


5
অন্য সমস্ত পদ্ধতি ব্যর্থ না হলে লোকেদের কখনই সিগিল (কিল -9) ব্যবহার করা উচিত নয়। কেবল তালিকাটিই kill -9খারাপ পরামর্শ। আমি উত্তরটি সংশোধন করে এটি সংশোধন করেছি।
স্কট সিভেরেন্স

আমি কীভাবে একটি কাস্টম ফাংশনটির পিড খুঁজে পেতে পারি। আমার একটি ফাংশন রয়েছে যাতে pingকমান্ড এবং এর সাথে লুপ থাকে sleepUnix.stackexchange.com/a/275826/72988 অনুসারে উবুন্টু ছাড়া এটি সম্ভব নয় multiplexer
টিমো

47

আপনি যখন pgrep, pkill, pidof ইত্যাদির সাহায্যে একই কমান্ডগুলি সম্পাদন করতে পারেন তখন এত দীর্ঘ কমান্ডের প্রয়োজন নেই বলে আমি মনে করি না ...

  • একটি চলমান প্রোগ্রামের পিড পেতে

pgrep:

   pgrep [options] pattern

বিবরণ: pgrep বর্তমানে চলমান প্রক্রিয়াগুলির মধ্যে নজর রাখে এবং প্রসেস আইডিগুলি তালিকাভুক্ত করে যা stdout এর সাথে নির্বাচনের মানদণ্ডের সাথে মেলে। সমস্ত মানদণ্ড মেলাতে হবে। উদাহরণ স্বরূপ,

  • রুটের মালিকানাধীন sshd নামের প্রক্রিয়াটি সন্ধান করতে।

    $ pgrep -u root sshd
    
  • রুট বা ডেমনের মালিকানাধীন প্রক্রিয়াগুলি তালিকাভুক্ত করুন।

    $ pgrep -u root,daemon
    

pidof:

বর্ণনা :

পিডোফ নামযুক্ত প্রোগ্রামগুলির প্রসেস আইডির (পিডস) সন্ধান করে। এটি স্ট্যান্ডার্ড আউটপুটে সেই আইডিগুলি মুদ্রণ করে।

সিনট্যাক্স: পিডোফ প্রোগ্রাম_নাম

  • পিডি দ্বারা একটি প্রোগ্রাম হত্যা করতে পিকেল উদাহরণ ব্যবহার করুন:

    pkill pid    
    pkill -f process_name    
    pkill -o process_name    
    pkill -n process_name    
    pkill -l process_name
    

    -fপতাকা: প্রসেস_নাম সন্ধান করে (ম্যান পিকিল দেখুন)
    -oপতাকা: মেলানো প্রক্রিয়াগুলির মধ্যে কেবলমাত্র প্রাচীনতমটি নির্বাচন করুন।
    -nপতাকা: মিলের প্রক্রিয়াগুলির মধ্যে কেবলমাত্র নতুনটি নির্বাচন করুন।
    -lপতাকা: প্রক্রিয়া নামের পাশাপাশি প্রক্রিয়া আইডি তালিকাভুক্ত করুন।


1
এটি সেরা উত্তর
ব্ল্যাকডাইভাইন

20

চলমান প্রোগ্রামের পিডকে জানার সবচেয়ে সহজ উপায়টি হ'ল:

pidof <application name>

উদাহরণস্বরূপ, আপনি যদি ভিএম শুরু করেন এবং এর পিড জানতে চান:

pidof vim

মনে রাখবেন যে আপনাকে শুরু করা ঠিক প্রোগ্রামের নাম সরবরাহ করতে হবে।

উদাহরণস্বরূপ, আপনি যদি vi চালাচ্ছেন এবং কার্যকর করেন তবে pidof vimআপনি সঠিক ফলাফল পাবেন না।

পড়ুন pidofআরও তথ্যের জন্য এর ম্যানুয়াল পাতা।


এটি ডিফল্টরূপে ইনস্টল করা হয়নি। এটি সিস্টেভিট-ইউটিস প্যাকেজে থাকতে পারে।
ফ্লিকফ্লিফ্লি

আমি মারিয়াডিবি পেয়েছি। pidof mysqldএকটি পিআইডি প্রদান করে। তবে আমি টাইপ করলে pidof Mariadbকিছুই ফেরত পাওয়া যায় না। এটি কি মারিয়াডিবি এবং মাইএসকিউএল উভয়ের জন্য একই পিআইডি?
পাঠরোস

18

আমি খুঁজে পেয়েছি যে "-i" যুক্ত করে এবং আরও বর্ণনামূলক আউটপুট পেতে "কুড়াল" এর পরিবর্তে "অক্স" ব্যবহার করে একটি কেস সংবেদনশীল অনুসন্ধান ব্যবহার করা ভাল:

ps aux | grep -i firefox

আপনি যদি ব্যবহার করতে পারেন এমন সমস্ত প্রক্রিয়াটি হত্যা করতে চান:

ps aux | grep -i firefox | awk {'print $2'} | xargs kill -9

এটা জোর করে হত্যা। নরম কিল চাইলে "-9" ফেলে দিন rop


5
এটি ps aux | grep -i firefox...প্রক্রিয়াটিকেও মেরে ফেলে , কারণ এতে firefoxতার কমান্ডের পাঠ্য রয়েছে !
এরিক

1
@ এরিক আপনি grep -i firefo[x]কেবল ফায়ারফক্সের সাথে মেলে ব্যবহার করতে পারেন
এডি

@ জন-ফলি ব্যবহার করতে পরামর্শ না -9দিয়ে killদেখতে এখানে ব্যাখ্যা
খ্রি

3

যদি আপনি কেবল পিড চান (অটোকিল স্ক্রিপ্টস ইত্যাদির জন্য দরকারী ...)

pgrep -f desired_program_name

1

উবুন্টু ১.0.০৪ এলটিএস চালানোর জন্য, আপনাকে অবশ্যইps axps কমান্ড লাইনেই ব্যবহার করা উচিত নয় , অন্যথায় আপনি নির্দিষ্ট টার্মিনাল উদাহরণ থেকে প্রসেসগুলি পাবেন যেটি আপনি রয়েছেন usually ] এবং 'পিএস' [আপনি কী চালিয়েছেন]]


আমি পছন্দ করি ps -e(সমস্ত দেখায়) এবং ps -ejH(একটি প্রক্রিয়া গাছ দেখায়)।
অ্যান্ড্রু

1
@ অ্যান্ড্রু সুন্দর, এটি আসলেই খুব মিষ্টি
টিপটির

0

আপনি অন্য একটি টার্মিনাল খুলতে (বা অন্য টিটিটিতে স্যুইচ করতে পারেন) এবং চালনা করতে পারেন topযা মূলত সিস্টেম মনিটরের একটি পাঠ্য সংস্করণ। প্রথম কলামে প্রতিটি চলমান প্রক্রিয়াটির পিআইডি তালিকাভুক্ত করা হয়, যা আপনি চাপ দিয়ে মেরে ফেলতে পারেন K, পিআইডি প্রবেশ করে এবং তারপরে একটি সংখ্যার সিগন্যাল প্রেরণ করে প্রেরণ করুন।


0

আপনি করতে পারেন:

ps ax | grep firefox | cut -f2 -d" " - | xargs kill -9

প্রথম দুটি পাইপ প্রক্রিয়া সম্পর্কিত তথ্য পায়, তারপরে আমরা পুরানো-স্কুল কাটাটি ব্যবহার করে পিআইডি কলামটি পাওয়ার চেষ্টা করি এবং তারপরে আমরা ফলস্বরূপ পিআইডি হত্যার জন্য দেব।


kill -9আপনি একটি প্রক্রিয়া হত্যা করতে হবে বৃহত্তম বন্দুক। প্রক্রিয়াটির উত্সগুলি পরিষ্কার করার সুযোগ দেওয়ার জন্য আপনাকে সিক্কিলের অবলম্বন করার আগে প্রথমে আরও মৃদু সংকেত চেষ্টা করা উচিত।
বাইট কমান্ডার

এটি সত্য @ বাইটকম্যান্ডার। আমি এটিকে একটি ওলাইনার তৈরি করতে চেয়েছিলাম যা কাজটি সম্পন্ন করবে।
আরিয়ান সোলতানি

0
top

অথবা

screen -list|ls

সংশ্লিষ্ট প্রক্রিয়া সহ সমস্ত পিড তালিকাভুক্ত করুন

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