টার্মিনালে চলমান প্রক্রিয়াগুলি কীভাবে খুঁজে পাবেন?


13

আমি যখন জিনোম টার্মিনালে কোনও ট্যাব বন্ধ করার চেষ্টা করি তখন এটি বলে:

এই টার্মিনালটি বন্ধ করুন? এই টার্মিনালটিতে এখনও একটি প্রক্রিয়া চলছে। টার্মিনালটি বন্ধ করলে এটি মারা যাবে।

এখনও কী চলছে তা আমি কীভাবে জানতে পারি? নোট করুন যে আউটপুট কিছুই নেই jobs। ধন্যবাদ।


1
এই বার্তাটি প্রদর্শিত হওয়ার সময় আপনি যদি শেল প্রম্পটে থাকেন তবে সম্ভবত এটি নেস্টেড শেল (টার্মিনাল এমুলেটর দ্বারা সরাসরি শুরু করা হয়নি)। হতে পারে আপনি একটি শুরু করেছি screen, tmux, script, ssh, mcএবং প্যানেল বন্ধ পরিণত, বা শুধু আরেকটি উদাহরণ টাইপ করে শেল bash, অথবা এইসব লাইন বরাবর কিছু। Ctrl + D টিপুন বা exitআপনার শেলটি প্রস্থান করতে টাইপ করুন , আপনি কোথায় এসেছেন তা দেখতে পাবেন।
egmont

ধন্যবাদ। পরে exit, জিনোম টার্মিনাল ট্যাবটি বন্ধ হয় না।
টিম

1
একটি সেকেন্ড exitসম্ভবত এটি তখন বন্ধ হবে। @ ইগমন্ট আপনি এটিকে একটি উত্তরে নিয়ে যেতে পারেন দয়া করে।
ভিডিওনাথ

উত্তর:


13
ps T

টার্মিনালের সাথে সম্পর্কিত সমস্ত প্রক্রিয়া নির্বাচন করে।


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

বা এই বিষয়টির জন্য কেবল পিএস
ব্যবহারকারী 100896322

2

আপনার শেলের পিআইডি কে প্যারেন্ট হিসাবে তালিকাভুক্ত করে এমন প্রক্রিয়াগুলি আপনি শীর্ষে নিতে পারেন। আপনি যেমন জানেন বা নাও জানেন, আমরা psফর্ম্যাট নির্দিষ্ট করতে পারি

SHELLPID=$$ ; ps -e  -o cmd,pid,ppid | awk -v shell=$SHELLPID  '$NF~shell'   

এখানে, আমরা বিশেষ পরিবর্তনশীল থেকে খোলসের এর PID, পেতে $$মধ্যে SHELLPID, যা নল এর subshell মধ্যে awk দ্বারা ব্যবহার করা যাবে। মূলত আমরা কেবল NAME, PID, মূল পিআইডি রূপে প্রক্রিয়াগুলি তালিকাভুক্ত করছি এবং কেবলমাত্র শেষ কলামে উপযুক্ত পিআইডি আছে কেবল তাদেরই ফিল্টার আউট করব।


2

যদি আপনি এই দুটি প্রক্রিয়াটির জন্য প্রসেস আইডি (পিআইডি) (বাশনের) এবং প্যারেন্ট প্রসেস আইডি (পিপিআইডি) এর চেয়ে টার্মিনালে কিছু উদ্বোধন করেন (যেমন: জিডিট)। এর আউটপুটে দেখা যাবে

ps -ef

কমান্ড। এটিকে আরও পঠনযোগ্য করে তুলতে প্রথমে আউটপুটটিকে "পাইপ" করতে দেয় grepবর্তমানে চলমান সমস্ত "বাশ" প্রক্রিয়াগুলির পিআইডি এবং এটি "পাইপ" এর চেয়ে আরও একবারে খুঁজে পেতে awkawkনির্বাচন শুধুমাত্র PID, এবং প্রক্রিয়া নাম ক্ষেত্র (ক্ষেত্র 2 এবং 8) এবং পর্দায় আউটপুট করুন।

ps -ef | grep bash | awk '{print $2 ": " $8}'

আউটপুটে নম্বরটি পিআইডি। টার্মিনালে কী প্রসেস শুরু হয়েছিল সেই পিআইডি রয়েছে তা সন্ধান করতে আপনি এটি ব্যবহার করবেন। মনে রাখবেন যে আপনার যদি একাধিক টার্মিনাল খোলা থাকে তবে একাধিক লাইন আউটপুট থাকতে পারে। এখন টার্মিনাল-সেশনগুলির "শিশু" প্রক্রিয়াগুলি (যদি থাকে তবে) আমরা এই আদেশটি ব্যবহার করতে পারি:

ps -ef | awk '{if ($3 == EnterPID) print $2 ": " $8;}'

আপনাকে অবশ্যই শেষ কমান্ডে এন্টারপিডের জায়গায় পিআইডি নম্বর লিখতে হবে। "বাশ" এর জন্য যদি একাধিক পিআইডি থাকে তবে আপনাকে অবশ্যই সেগুলি চেষ্টা করে দেখতে হবে।

শেষ কমান্ডটি কেবল আউটপুটটি দেখায় ps -efএবং অনুসন্ধান করে যদি পিআইডি (যা আপনি পূর্ববর্তী কমান্ড থেকে পেয়েছেন) এবং পিপিআইডি কোনও প্রক্রিয়ার জন্য একই হয়।

অধিক তথ্য:

মানুষ PS

মানুষ অবাক


-1

আপনি ব্যবহার করতে পারেন htop। উবুন্টু 16.04 (এবং আরও উচ্চতর) এ, আপনি কেবল টাইপ করে এটি ইনস্টল করতে পারেন sudo apt-get install htop

আপনি ব্যবহার করতে পারেন top


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