আমি টার্মিনালে একটি প্রোগ্রাম চালাচ্ছি যা দিয়ে আমি পালাতে পারি না Ctrl- Cএবং আমি হত্যা করতে চাই। আমি এর পিআইডি কীভাবে খুঁজে পাব?
আমি টার্মিনালে একটি প্রোগ্রাম চালাচ্ছি যা দিয়ে আমি পালাতে পারি না Ctrl- Cএবং আমি হত্যা করতে চাই। আমি এর পিআইডি কীভাবে খুঁজে পাব?
উত্তর:
অন্য একটি টার্মিনাল খুলুন এবং চালান 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% সিপিইউ ব্যবহার করে এমন হতে পারে?) এবং এটিকে ডান ক্লিক করুন। যেহেতু প্রক্রিয়া ইতিমধ্যে বন্ধ হয়ে গেছে, (সমস্যাটি তাই না?) ফলাফল মেনু থেকে শেষ প্রক্রিয়া বা কিল প্রক্রিয়াটি বেছে নিন।
কোয়ানহেডে ক্রেডিট
kill -9
খারাপ পরামর্শ। আমি উত্তরটি সংশোধন করে এটি সংশোধন করেছি।
ping
কমান্ড এবং এর সাথে লুপ থাকে sleep
। Unix.stackexchange.com/a/275826/72988 অনুসারে উবুন্টু ছাড়া এটি সম্ভব নয় multiplexer
।
আপনি যখন 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
পতাকা: প্রক্রিয়া নামের পাশাপাশি প্রক্রিয়া আইডি তালিকাভুক্ত করুন।
চলমান প্রোগ্রামের পিডকে জানার সবচেয়ে সহজ উপায়টি হ'ল:
pidof <application name>
উদাহরণস্বরূপ, আপনি যদি ভিএম শুরু করেন এবং এর পিড জানতে চান:
pidof vim
মনে রাখবেন যে আপনাকে শুরু করা ঠিক প্রোগ্রামের নাম সরবরাহ করতে হবে।
উদাহরণস্বরূপ, আপনি যদি vi চালাচ্ছেন এবং কার্যকর করেন তবে pidof vim
আপনি সঠিক ফলাফল পাবেন না।
পড়ুন pidof
আরও তথ্যের জন্য এর ম্যানুয়াল পাতা।
pidof mysqld
একটি পিআইডি প্রদান করে। তবে আমি টাইপ করলে pidof Mariadb
কিছুই ফেরত পাওয়া যায় না। এটি কি মারিয়াডিবি এবং মাইএসকিউএল উভয়ের জন্য একই পিআইডি?
আমি খুঁজে পেয়েছি যে "-i" যুক্ত করে এবং আরও বর্ণনামূলক আউটপুট পেতে "কুড়াল" এর পরিবর্তে "অক্স" ব্যবহার করে একটি কেস সংবেদনশীল অনুসন্ধান ব্যবহার করা ভাল:
ps aux | grep -i firefox
আপনি যদি ব্যবহার করতে পারেন এমন সমস্ত প্রক্রিয়াটি হত্যা করতে চান:
ps aux | grep -i firefox | awk {'print $2'} | xargs kill -9
এটা জোর করে হত্যা। নরম কিল চাইলে "-9" ফেলে দিন rop
ps aux | grep -i firefox...
প্রক্রিয়াটিকেও মেরে ফেলে , কারণ এতে firefox
তার কমান্ডের পাঠ্য রয়েছে !
grep -i firefo[x]
কেবল ফায়ারফক্সের সাথে মেলে ব্যবহার করতে পারেন
উবুন্টু ১.0.০৪ এলটিএস চালানোর জন্য, আপনাকে অবশ্যইps ax
ps
কমান্ড লাইনেই ব্যবহার করা উচিত নয় , অন্যথায় আপনি নির্দিষ্ট টার্মিনাল উদাহরণ থেকে প্রসেসগুলি পাবেন যেটি আপনি রয়েছেন usually ] এবং 'পিএস' [আপনি কী চালিয়েছেন]]
ps -e
(সমস্ত দেখায়) এবং ps -ejH
(একটি প্রক্রিয়া গাছ দেখায়)।
আপনি অন্য একটি টার্মিনাল খুলতে (বা অন্য টিটিটিতে স্যুইচ করতে পারেন) এবং চালনা করতে পারেন top
যা মূলত সিস্টেম মনিটরের একটি পাঠ্য সংস্করণ। প্রথম কলামে প্রতিটি চলমান প্রক্রিয়াটির পিআইডি তালিকাভুক্ত করা হয়, যা আপনি চাপ দিয়ে মেরে ফেলতে পারেন K, পিআইডি প্রবেশ করে এবং তারপরে একটি সংখ্যার সিগন্যাল প্রেরণ করে প্রেরণ করুন।
আপনি করতে পারেন:
ps ax | grep firefox | cut -f2 -d" " - | xargs kill -9
প্রথম দুটি পাইপ প্রক্রিয়া সম্পর্কিত তথ্য পায়, তারপরে আমরা পুরানো-স্কুল কাটাটি ব্যবহার করে পিআইডি কলামটি পাওয়ার চেষ্টা করি এবং তারপরে আমরা ফলস্বরূপ পিআইডি হত্যার জন্য দেব।
kill -9
আপনি একটি প্রক্রিয়া হত্যা করতে হবে বৃহত্তম বন্দুক। প্রক্রিয়াটির উত্সগুলি পরিষ্কার করার সুযোগ দেওয়ার জন্য আপনাকে সিক্কিলের অবলম্বন করার আগে প্রথমে আরও মৃদু সংকেত চেষ্টা করা উচিত।