লিনাক্সের প্রসেসগুলি সম্পর্কে আপনার যা যা জানা দরকার তা হল [বিস্তৃত গাইড]


এই নিবন্ধে, আমরা প্রক্রিয়াগুলির একটি প্রাথমিক বোঝার মধ্য দিয়ে চলব এবং সংক্ষিপ্তভাবে নির্দিষ্ট কমান্ডগুলি ব্যবহার করে কীভাবে লিনাক্সে প্রক্রিয়াগুলি পরিচালনা করতে হবে তা পর্যালোচনা করব।

একটি প্রক্রিয়া মৃত্যুদন্ড কার্যকর একটি প্রোগ্রাম বোঝায়; এটি একটি প্রোগ্রামের একটি চলমান দৃষ্টান্ত। এটি প্রোগ্রামের নির্দেশাবলী, ফাইল থেকে পড়া ডেটা, অন্যান্য প্রোগ্রাম বা কোনও সিস্টেম ব্যবহারকারীর ইনপুট দ্বারা তৈরি।

লিনাক্সে মূলত দুটি ধরণের প্রক্রিয়া রয়েছে:

  • অগ্রভূমি প্রক্রিয়াগুলি (ইন্টারেক্টিভ প্রক্রিয়া হিসাবেও পরিচিত) - এগুলি একটি টার্মিনাল সেশনের মাধ্যমে আরম্ভ এবং নিয়ন্ত্রণ করা হয়। অন্য কথায়, এই জাতীয় প্রক্রিয়াগুলি শুরু করতে সিস্টেমের সাথে যুক্ত কোনও ব্যবহারকারী থাকতে হবে; তারা সিস্টেম ফাংশন/পরিষেবাদির অংশ হিসাবে স্বয়ংক্রিয়ভাবে শুরু হয় নি
  • পটভূমি প্রক্রিয়াগুলি (অ-ইন্টারেক্টিভ/স্বয়ংক্রিয় প্রক্রিয়া হিসাবেও পরিচিত) - এমন প্রক্রিয়া যা কোনও টার্মিনালের সাথে সংযুক্ত নয়; তারা কোনও ব্যবহারকারীর ইনপুট আশা করে না

এগুলি হ'ল বিশেষ ধরণের ব্যাকগ্রাউন্ড প্রক্রিয়া যা সিস্টেম শুরুতে শুরু হয় এবং পরিষেবা হিসাবে চিরতরে চলতে থাকে; তারা মারা যায় না। এগুলি স্বতঃস্ফূর্তভাবে সিস্টেম টাস্ক (পরিষেবা হিসাবে চালিত) হিসাবে শুরু করা হয়। যাইহোক, তারা init প্রক্রিয়াটির মাধ্যমে কোনও ব্যবহারকারী দ্বারা নিয়ন্ত্রিত হতে পারে।

লিনাক্সে একটি প্রক্রিয়া তৈরি

একটি নতুন প্রক্রিয়া সাধারণত তৈরি করা হয় যখন কোনও বিদ্যমান প্রক্রিয়া স্মৃতিতে নিজের একটি সঠিক অনুলিপি তৈরি করে। শিশু প্রক্রিয়াটির পিতামাতার মতো পরিবেশ থাকবে তবে কেবল প্রক্রিয়া আইডি নম্বরটি আলাদা।

লিনাক্সে একটি নতুন প্রক্রিয়া তৈরির জন্য দুটি প্রচলিত পদ্ধতি ব্যবহৃত হয়েছে:

  • সিস্টেমটি ব্যবহার করে() ফাংশন - এই পদ্ধতিটি তুলনামূলকভাবে সহজ, তবে এটি অদক্ষ এবং এটিতে নির্দিষ্ট কিছু নিরাপত্তা ঝুঁকি রয়েছে
  • কাঁটাচামচ() এবং এক্সিকিউট() ফাংশন ব্যবহার করে - এই কৌশলটি সামান্য উন্নত তবে সুরক্ষার সাথে আরও নমনীয়তা, গতি সরবরাহ করে

কীভাবে লিনাক্স প্রক্রিয়াগুলি সনাক্ত করতে পারে?

যেহেতু লিনাক্স একটি মাল্টি-ইউজার সিস্টেম, যার অর্থ বিভিন্ন ব্যবহারকারী সিস্টেমে বিভিন্ন প্রোগ্রাম চালাতে পারে, তাই প্রতিটি প্রোগ্রামের চলমান উদাহরণটি কার্নেলের দ্বারা স্বতন্ত্রভাবে চিহ্নিত করতে হবে।

এবং একটি প্রোগ্রামকে এর প্রসেস আইডি (পিআইডি) এর পাশাপাশি এটির প্যারেন্ট প্রসেসস আইডি (পিপিআইডি) দ্বারা চিহ্নিত করা হয়, সুতরাং প্রক্রিয়াগুলি আরও এখানে শ্রেণিবদ্ধ করা যেতে পারে:

  • পিতামাতার প্রক্রিয়াগুলি - এগুলি এমন প্রক্রিয়া যা রান-টাইমের সময় অন্যান্য প্রক্রিয়া তৈরি করে।
  • শিশু প্রক্রিয়াগুলি - এই প্রক্রিয়াগুলি রান-টাইমের সময় অন্যান্য প্রক্রিয়া দ্বারা তৈরি করা হয়েছিল

ইনস প্রক্রিয়া হ'ল সিস্টেমে সমস্ত প্রক্রিয়ার মা (পিতা বা মাতা), এটিই প্রথম প্রোগ্রাম যা লিনাক্স সিস্টেম বুট আপ হওয়ার পরে কার্যকর করা হয়; এটি সিস্টেমে অন্য সমস্ত প্রক্রিয়া পরিচালনা করে। এটি কার্নেল দ্বারা নিজেই শুরু করা হয়েছে, সুতরাং নীতিগতভাবে এটির কোনও প্যারেন্ট প্রক্রিয়া নেই।

ইআরসি প্রক্রিয়াটিতে সর্বদা প্রসেস আইডি থাকে It এটি সমস্ত অনাথ প্রক্রিয়ার জন্য একটি দত্তক হিসাবে অভিভাবক হিসাবে কাজ করে।

কোনও প্রক্রিয়ার আইডি খুঁজতে আপনি পিডোফ কমান্ডটি ব্যবহার করতে পারেন:

# pidof systemd
# pidof top
# pidof httpd

বর্তমান শেলের প্রসেস আইডি এবং প্যারেন্ট প্রসেস আইডিটি খুঁজতে, চালান:

$ echo $$
$ echo $PPID

আপনি যখন কোনও কমান্ড বা প্রোগ্রাম চালান (উদাহরণস্বরূপ ক্লাউডসিএমডি - ক্লাউডকম্যান্ডার), এটি সিস্টেমে একটি প্রক্রিয়া শুরু করবে। আপনি নিম্নলিখিত হিসাবে একটি অগ্রভাগ (ইন্টারেক্টিভ) প্রক্রিয়া শুরু করতে পারেন, এটি টার্মিনালের সাথে সংযুক্ত হবে এবং কোনও ব্যবহারকারী এটি ইনপুট প্রেরণ করতে পারবেন:

# cloudcmd

পটভূমিতে একটি প্রক্রিয়া শুরু করতে (অ-ইন্টারেক্টিভ), & চিহ্নটি ব্যবহার করুন, এখানে, প্রক্রিয়াটি কোনও পূর্বগ্রাউন্ডে না সরানো পর্যন্ত কোনও ব্যবহারকারীর কাছ থেকে ইনপুট পড়বে না।

# cloudcmd &
# jobs

আপনি [Ctrl + Z] ব্যবহার করে স্থগিত করে ব্যাকগ্রাউন্ডে কোনও প্রক্রিয়াও প্রেরণ করতে পারেন, এটি প্রক্রিয়াতে সাইনস্টপ সংকেত প্রেরণ করবে, সুতরাং এটির কাজ বন্ধ করে দেওয়া হবে; এটি অলস হয়ে যায়:

# tar -cf backup.tar /backups/*  #press Ctrl+Z
# jobs

পটভূমিতে উপরের সাসপেন্ড কমান্ডটি চালিয়ে যেতে, bg কমান্ডটি ব্যবহার করুন:

# bg

অগ্রভাগে একটি পটভূমি প্রক্রিয়া প্রেরণ করতে, এই জাতীয় জব আইডি সহ fg কমান্ডটি ব্যবহার করুন:

# jobs
# fg %1

আপনি এটি পছন্দ করতে পারেন: পটভূমিতে লিনাক্স কমান্ড কীভাবে শুরু করবেন এবং টার্মিনালে ডিটাচ প্রক্রিয়া

মৃত্যুদণ্ডের সময়, একটি প্রক্রিয়া তার পরিবেশ/পরিস্থিতির উপর নির্ভর করে এক থেকে অন্য রাজ্যে পরিবর্তিত হয়। লিনাক্সে, একটি প্রক্রিয়ার নিম্নলিখিত সম্ভাব্য স্টেটগুলি রয়েছে:

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

সিস্টেমে চলমান প্রক্রিয়াগুলি দেখতে/তালিকাবদ্ধ করার জন্য লিনাক্সের বেশ কয়েকটি সরঞ্জাম রয়েছে, প্রচলিত এবং সুপরিচিত দুটি শীর্ষ কমান্ড:

এটি সিস্টেমে সক্রিয় প্রক্রিয়াগুলির একটি নির্বাচন সম্পর্কে তথ্য নীচের মত দেখায়:

# ps 
# ps -e | head 

স্ক্রিনশটটি নীচের স্ক্রিনশটে প্রদর্শিত হিসাবে চলমান সিস্টেমের গতিশীল রিয়েল-টাইম দর্শন:

# top 

আরও শীর্ষ ব্যবহারের উদাহরণগুলির জন্য এটি পড়ুন: লিনাক্সে 12 শীর্ষ কমান্ড উদাহরণ

এক নজরে উন্নত বৈশিষ্ট্য সহ তুলনামূলকভাবে নতুন সিস্টেম মনিটরিং সরঞ্জাম:

# glances

একটি বিস্তৃত ব্যবহারের গাইডের জন্য পড়ুন: গ্লান্সস - লিনাক্সের জন্য একটি উন্নত রিয়েল টাইম সিস্টেম মনিটরিং সরঞ্জাম

সক্রিয় প্রক্রিয়াগুলি তালিকাভুক্ত করতে আপনি আরও কয়েকটি দরকারী লিনাক্স সিস্টেম মনিটরিং সরঞ্জাম ব্যবহার করতে পারেন, সেগুলি সম্পর্কে আরও পড়তে নীচের লিঙ্কটি খুলুন:

  1. লিনাক্স পারফরম্যান্স নিরীক্ষণের জন্য 20 কমান্ড লাইন সরঞ্জাম
  2. 13 টি আরও দরকারী লিনাক্স পর্যবেক্ষণ সরঞ্জাম

লিনাক্সে প্রক্রিয়াগুলি কীভাবে নিয়ন্ত্রণ করতে হয়

লিনাক্সের কিল, পিকিল, পিগ্রিপ এবং কিল্লের মতো প্রক্রিয়া নিয়ন্ত্রণের জন্য কিছু কমান্ড রয়েছে, কীভাবে সেগুলি ব্যবহার করবেন সে সম্পর্কে কয়েকটি বুনিয়াদি উদাহরণ নীচে:

$ pgrep -u tecmint top
$ kill 2308
$ pgrep -u tecmint top
$ pgrep -u tecmint glances
$ pkill glances
$ pgrep -u tecmint glances

এই কমান্ডগুলিকে কীভাবে গভীরভাবে ব্যবহার করতে হয়, লিনাক্সে সক্রিয় প্রক্রিয়াগুলি হত্যা/সমাপ্ত করার জন্য, নীচের লিঙ্কগুলি খুলুন:

  1. লিনাক্স প্রক্রিয়া সমাপ্ত করার জন্য কিল, পিল এবং কিল্লাল কমান্ডের একটি গাইড
  2. লিনাক্সে চলমান প্রক্রিয়াগুলি কীভাবে সন্ধান করতে এবং হত্যা করতে হবে

মনে রাখবেন যে আপনার সিস্টেমটি হিমশীতল হয়ে গেলে আপনি লিনাক্সে প্রতিক্রিয়াহীন অ্যাপ্লিকেশনগুলিকে হত্যা করতে ব্যবহার করতে পারেন।

লিনাক্সে প্রক্রিয়া নিয়ন্ত্রণের মৌলিক উপায় হ'ল তাদেরকে সংকেত প্রেরণ করে। চালিত সমস্ত সংকেত দেখতে আপনি এক প্রক্রিয়াতে প্রেরণ করতে পারেন এমন একাধিক সংকেত রয়েছে:

$ kill -l

কোনও প্রক্রিয়াতে সংকেত প্রেরণের জন্য, আমরা আগে উল্লিখিত কিল, পিকিল বা পিগ্রিপ কমান্ডগুলি ব্যবহার করুন। প্রোগ্রামগুলি কেবলমাত্র সংকেতগুলিতে প্রতিক্রিয়া জানাতে পারে যদি সেগুলি এই সংকেতগুলি সনাক্ত করতে প্রোগ্রাম করা হয়।

এবং বেশিরভাগ সিগন্যালগুলি সিস্টেমের অভ্যন্তরীণ ব্যবহারের জন্য বা প্রোগ্রামারদের কোড কোড লেখার জন্য। নিম্নলিখিত সিস্টেমের ব্যবহারকারীর জন্য দরকারী সিগন্যাল রয়েছে:

  • সাইনআপ 1 - কোনও প্রক্রিয়াতে যখন এর নিয়ন্ত্রণকারী টার্মিনালটি বন্ধ থাকে তখন প্রেরণ করা হয়
  • সাইন ইন 2 - যখন কোনও ব্যবহারকারী [Ctrl + C] টিপে প্রক্রিয়াটিতে বাধা দেয় তখন তার নিয়ন্ত্রণকারী টার্মিনাল দ্বারা একটি প্রক্রিয়াতে প্রেরণ করা হয়
  • সাইনুইট 3 - কোনও প্রক্রিয়ায় প্রেরণ করা হয়েছে যদি ব্যবহারকারী একটি প্রস্থান সিগন্যাল প্রেরণ করে [Ctrl + D]
  • সাইনিল 9 - এই সিগন্যালটি তত্ক্ষণাত একটি প্রক্রিয়া বন্ধ করে দেয় (হত্যা করে) এবং প্রক্রিয়াটি কোনও ক্লিন-আপ অপারেশন করবে না will
  • স্বাক্ষর 15 - এটি একটি প্রোগ্রামের সমাপ্তি সংকেত (হত্যাটি এটি ডিফল্টরূপে প্রেরণ করবে)
  • SIGTSTP 20 - এটি নিয়ন্ত্রণ (টার্মিনাল স্টপ) বন্ধ করার জন্য অনুরোধ করার জন্য একটি কন্ট্রোলিং টার্মিনাল দ্বারা একটি প্রক্রিয়াতে প্রেরণ করা হয়েছে; [Ctrl + Z] টিপে ব্যবহারকারী দ্বারা শুরু করা হয়েছে

ফায়ারফক্স অ্যাপ্লিকেশনটি একবার নিথর হয়ে গেলে এর পিআইডি ব্যবহার করে মেরে ফেলার জন্য নীচে কিল কমান্ডের উদাহরণ দেওয়া হল:

$ pidof firefox
$ kill 9 2687
OR
$ kill -KILL 2687
OR
$ kill -SIGKILL 2687  

অ্যাপ্লিকেশনটির নাম ব্যবহার করে হত্যা করতে, পিল বা কিল্ল ব্যবহার করুন:

$ pkill firefox
$ killall firefox 

লিনাক্স সিস্টেমে, সমস্ত সক্রিয় প্রক্রিয়াগুলির একটি অগ্রাধিকার এবং নির্দিষ্ট সুন্দর মান থাকে। উচ্চ অগ্রাধিকার সহ প্রক্রিয়াগুলি সাধারণত নিম্ন অগ্রাধিকার প্রক্রিয়ার চেয়ে বেশি সিপিইউ সময় পাবে।

তবে, রুট সুবিধাগুলি সহ একটি সিস্টেম ব্যবহারকারী এটি সুন্দর এবং রেনিস কমান্ডের সাহায্যে প্রভাবিত করতে পারে।

শীর্ষ কমান্ডের আউটপুট থেকে, এনআই প্রক্রিয়াটির ভাল মানটি দেখায়:

$ top  

একটি প্রক্রিয়া জন্য একটি ভাল মান সেট করতে সুন্দর কমান্ড ব্যবহার করুন। মনে রাখবেন যে সাধারণ ব্যবহারকারীরা নিজের মালিকানাধীন প্রক্রিয়াগুলিতে শূন্য থেকে 20 টি পর্যন্ত একটি দুর্দান্ত মানকে বিশিষ্ট করতে পারেন
শুধুমাত্র মূল ব্যবহারকারী নেতিবাচক সুন্দর মান ব্যবহার করতে পারেন।

কোনও প্রক্রিয়াটির অগ্রাধিকারটি পুনরায় ব্যবহার করতে, রাইনিস কমান্ডটি নীচে ব্যবহার করুন:

$ renice +8  2687
$ renice +8  2103

কীভাবে লিনাক্স প্রক্রিয়াগুলি পরিচালনা ও নিয়ন্ত্রণ করতে হয় সে সম্পর্কে আমাদের কিছু দরকারী নিবন্ধ পরীক্ষা করে দেখুন।

  1. লিনাক্স প্রক্রিয়া পরিচালনা: বুট, শাটডাউন এবং এর মধ্যে সমস্ত কিছু
  2. li
  3. ব্যাচ মোডে ‘শীর্ষ’ দিয়ে মেমরির ব্যবহারের মাধ্যমে শীর্ষ 15 প্রক্রিয়াগুলি সন্ধান করুন
  4. লিনাক্সে সর্বাধিক মেমরি এবং সিপিইউ ব্যবহারের মাধ্যমে শীর্ষস্থানীয় চলমান প্রক্রিয়াগুলি সন্ধান করুন
  5. লিনাক্সে পিআইডি নম্বর ব্যবহার করে কোনও প্রক্রিয়ার নাম কীভাবে খুঁজে পাবেন

এখন এ পর্যন্তই! আপনার যদি কোন প্রশ্ন বা অতিরিক্ত ধারণা থাকে তবে সেগুলি নীচের প্রতিক্রিয়া ফর্মের মাধ্যমে আমাদের সাথে ভাগ করুন।