প্রক্রিয়া এবং জব ম্যানেজমেন্ট
UNIX এবং LINUX সিস্টেমে প্রক্রিয়া (process) এবং জব (job) ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ। সিস্টেমের কার্যকরীতা এবং রিসোর্স ব্যবস্থাপনা সঠিকভাবে কাজ করার জন্য এগুলি অপরিহার্য। প্রক্রিয়া এবং জবের ম্যানেজমেন্টে কমান্ড এবং টুলস ব্যবহার করে ব্যবহারকারী প্রক্রিয়া শুরু করা, থামানো, সাসপেন্ড করা, এবং পরিচালনা করতে পারেন।
1. প্রক্রিয়া (Process) কী?
প্রক্রিয়া একটি কার্যকরী প্রোগ্রাম যা সিস্টেমে চলমান থাকে। যখন কোনো প্রোগ্রাম চালানো হয়, তখন তা একটি প্রক্রিয়া হিসেবে কাজ শুরু করে এবং এটি একাধিক স্টেপে কাজ করতে থাকে (যেমন CPU, মেমরি ব্যবহার, ইনপুট/আউটপুট ইত্যাদি)। UNIX এবং LINUX সিস্টেমে প্রতিটি প্রক্রিয়ার একটি প্রক্রিয়া আইডি (PID) থাকে যা ইউনিকভাবে সেটি চিহ্নিত করে।
2. প্রক্রিয়া সম্পর্কিত কমান্ড
ps: চলমান প্রক্রিয়াগুলোর একটি সংক্ষিপ্ত তালিকা দেখতেpsকমান্ড ব্যবহার করা হয়।উদাহরণ:
psএটি শুধুমাত্র বর্তমান ব্যবহারকারীর চলমান প্রক্রিয়া দেখাবে।
ps aux: সমস্ত ব্যবহারকারীর সকল প্রক্রিয়া দেখাবে।ps auxtop: সিস্টেমে চলমান সকল প্রক্রিয়া এবং তাদের রিসোর্স ব্যবহার (CPU, মেমরি ইত্যাদি) দেখতেtopকমান্ড ব্যবহার করা হয়।উদাহরণ:
topএটি রিয়েল-টাইমে সিস্টেমের প্রক্রিয়া এবং তাদের রিসোর্স ব্যবহারের তালিকা দেখাবে।
htop:topএর একটি উন্নত সংস্করণ যা আরও ইন্টারেক্টিভ এবং ব্যবহারকারী-বান্ধব।উদাহরণ:
htoppidof: কোনো প্রোগ্রামের প্রক্রিয়া আইডি (PID) খুঁজে পেতেpidofকমান্ড ব্যবহার করা হয়।উদাহরণ:
pidof apache2
3. প্রক্রিয়া নিয়ন্ত্রণ (Process Control)
kill: একটি প্রক্রিয়া থামানোর জন্যkillকমান্ড ব্যবহার করা হয়। এটি প্রক্রিয়া আইডি (PID) দিয়ে নির্দিষ্ট প্রক্রিয়া বন্ধ করে।উদাহরণ:
kill 1234এখানে
1234হলো বন্ধ করার জন্য প্রক্রিয়া আইডি (PID)।kill -9: যদি একটি প্রক্রিয়া সাধারণভাবে বন্ধ না হয়, তবে-9অপশন ব্যবহার করা যেতে পারে যা প্রক্রিয়াকে এক্সপ্লিসিটভাবে টার্মিনেট (ধ্বংস) করে দেয়।
kill -9 1234bg: একটি সাসপেন্ড (pause) করা প্রক্রিয়াকে ব্যাকগ্রাউন্ডে চালানোর জন্যbgকমান্ড ব্যবহার করা হয়।উদাহরণ:
bg %1এখানে
%1হচ্ছে সাসপেন্ড করা প্রক্রিয়ার জব নম্বর।fg: ব্যাকগ্রাউন্ডে চলমান একটি প্রক্রিয়া সামনে নিয়ে আসতেfgকমান্ড ব্যবহার করা হয়।উদাহরণ:
fg %1jobs: চলমান অথবা সাসপেন্ড করা জবের তালিকা দেখতেjobsকমান্ড ব্যবহার করা হয়।উদাহরণ:
jobs
4. জব (Job) কী?
UNIX এবং LINUX সিস্টেমে, একটি জব হল একটি প্রক্রিয়া যা চালানো হচ্ছে। একটি জব ব্যাকগ্রাউন্ডে বা ফোরগ্রাউন্ডে চালানো যেতে পারে। সিস্টেমে একাধিক জব একসাথে চালানো সম্ভব, এবং তাদের অবস্থাও নিয়ন্ত্রণ করা যায় (যেমন, সাসপেন্ড, ব্যাকগ্রাউন্ডে চালানো, সামনে আনা ইত্যাদি)।
5. জব ম্যানেজমেন্ট কমান্ড
&: একটি প্রক্রিয়া ব্যাকগ্রাউন্ডে চালাতে&অপশন ব্যবহার করা হয়।উদাহরণ:
./myprogram &Ctrl + Z: একটি চলমান প্রক্রিয়া সাসপেন্ড (pause) করতেCtrl + Zপ্রেস করা হয়।disown: একটি সাসপেন্ড করা অথবা ব্যাকগ্রাউন্ডে চলমান প্রক্রিয়া থেকে জব টার্মিনাল সংযোগ বিচ্ছিন্ন করার জন্যdisownব্যবহার করা হয়।উদাহরণ:
disown %1
6. নিউ প্রক্রিয়া শুরু করা
nohup: কোনো প্রক্রিয়া টার্মিনাল বন্ধ হলে থামবে না, এমনকি যদি ইউজার লগ আউট করে, তাও চলতে থাকবে। এই জন্যnohupব্যবহার করা হয়।উদাহরণ:
nohup ./myprogram &nice: কোনো প্রক্রিয়া CPU ব্যবহারের জন্য কম বা বেশি অগ্রাধিকার দেওয়া (priority) যায়।niceকমান্ড দিয়ে এটি করা হয়।উদাহরণ:
nice -n 10 commandএটি
commandকে একটি কম প্রাধান্য সহ চালাবে।
সারসংক্ষেপ
- প্রক্রিয়া (Process): একটি কার্যকরী প্রোগ্রাম যা সিস্টেমে চলমান।
- জব (Job): একটি প্রক্রিয়া যা ফরগ্রাউন্ড বা ব্যাকগ্রাউন্ডে চলতে পারে।
ps,top,pidof: প্রক্রিয়ার তালিকা দেখাতে ব্যবহার হয়।kill,bg,fg,jobs: প্রক্রিয়া এবং জব নিয়ন্ত্রণ করতে ব্যবহৃত হয়।nohup,nice,disown: প্রক্রিয়া চালানোর বিশেষ উপায়।
এগুলি প্রক্রিয়া এবং জব ম্যানেজমেন্টের কিছু মৌলিক কমান্ড যা UNIX / LINUX সিস্টেমে সঠিকভাবে কাজ করার জন্য অপরিহার্য।
প্রক্রিয়া (Process) কী এবং কেন দরকার
প্রক্রিয়া (Process) কম্পিউটার সিস্টেমে একটি চলমান প্রোগ্রাম বা কার্যক্রমের প্রতিনিধিত্ব করে। এটি মূলত সিস্টেমের একটি অংশ হিসেবে রানটাইমে কার্যকরী হওয়া একটি প্রোগ্রাম, যেখানে কোড, ডেটা এবং প্রোগ্রামের সমস্ত কার্যকরী অংশ একত্রিত থাকে। সিস্টেমে যখন একটি প্রোগ্রাম রান করে, তখন তার কার্যকারিতা শুরু হতে এবং শেষ হওয়া পর্যন্ত যা ঘটে, তা একটি প্রক্রিয়া হিসেবেই বিবেচিত হয়।
প্রক্রিয়া কী?
প্রক্রিয়া (Process) একটি প্রোগ্রামের চলমান উদাহরণ যা কার্যকরী হয় এবং মেমরি বা অন্যান্য সিস্টেম রিসোর্স ব্যবহার করে। এটি সিস্টেমের বিভিন্ন শাখার মাধ্যমে পরিচালিত হয়, যার মধ্যে রয়েছে:
- প্রোগ্রাম কোড (Text section): প্রোগ্রামের কোড যা সিস্টেমের মাধ্যমে রান করা হয়।
- ডাটা সেকশন (Data section): প্রোগ্রাম চলাকালীন ব্যবহৃত ডেটা।
- স্ট্যাক (Stack): ফাংশন কল এবং তার সংশ্লিষ্ট ডেটা ধারণ করে, যা প্রোগ্রামের অস্থায়ী তথ্য রাখে।
- হিপ (Heap): রানটাইমে ডাইনামিক মেমরি অ্যলোকেশন এর জন্য ব্যবহৃত হয়।
প্রক্রিয়ার জীবনচক্র সাধারণত তিনটি গুরুত্বপূর্ণ পর্যায়ে বিভক্ত হয়:
- প্রক্রিয়া সৃষ্টি (Process Creation): একটি প্রোগ্রাম যখন চালানো হয়, তখন এটি একটি প্রক্রিয়ার রূপ নেয়।
- প্রক্রিয়ার রান (Process Execution): প্রক্রিয়া চালু থাকলে, এটি CPU এবং অন্যান্য সিস্টেম রিসোর্স ব্যবহার করে কাজ করে।
- প্রক্রিয়া শেষ (Process Termination): প্রক্রিয়ার কাজ শেষ হলে, এটি সিস্টেম থেকে বন্ধ হয়ে যায়।
প্রক্রিয়ার ধরন
- ইন্টারঅ্যাকটিভ প্রক্রিয়া (Interactive Process): ব্যবহারকারী দ্বারা সরাসরি নিয়ন্ত্রিত প্রক্রিয়া, যেমন কমান্ড লাইন বা গ্রাফিকাল ইউজার ইন্টারফেস (GUI) এর মাধ্যমে চালানো প্রক্রিয়া।
- ব্যাকগ্রাউন্ড প্রক্রিয়া (Background Process): ব্যবহারকারীর সরাসরি ইন্টারঅ্যাকশন ছাড়া চলা প্রক্রিয়া, যা কম্পিউটার সিস্টেমের পেছনে নিরবভাবে কাজ করে।
- ফোরগ্রাউন্ড প্রক্রিয়া (Foreground Process): ব্যবহারকারী সরাসরি এই প্রক্রিয়াগুলোর সাথে ইন্টারঅ্যাক্ট করেন।
প্রক্রিয়া কেন দরকার?
প্রক্রিয়া কম্পিউটার সিস্টেমে বিভিন্ন কারণে গুরুত্বপূর্ণ। এর কয়েকটি প্রধান কারণ নিম্নে আলোচনা করা হলো:
- সম্পাদনার দক্ষতা: একাধিক প্রক্রিয়া সিস্টেমে একে অপরের সাথে সমন্বিতভাবে কাজ করতে পারে, ফলে মাল্টি-টাস্কিং এবং মাল্টি-থ্রেডিং এর মাধ্যমে একাধিক কাজ একই সময়ে করা সম্ভব হয়।
- রিসোর্স ব্যবস্থাপনা: প্রক্রিয়া সিস্টেমের রিসোর্স যেমন CPU, মেমরি, এবং ডিস্ক স্পেস ব্যবহার করে কার্যকরভাবে কাজ সম্পাদন করে। প্রতিটি প্রক্রিয়া তার নিজস্ব রিসোর্স ব্যবহার করে, এবং সিস্টেম একাধিক প্রক্রিয়ার মধ্যে রিসোর্স সমন্বয় করতে সক্ষম।
- পদ্ধতিগত কার্যকারিতা: বিভিন্ন প্রোগ্রাম, যেমন ওয়েব ব্রাউজার, ডেটাবেস সার্ভার, বা সার্ভিসেস, সাধারণত একাধিক প্রক্রিয়া তৈরি করে, যা একে অপরের সাথে সমন্বিতভাবে কাজ করে এবং সিস্টেমের কার্যকারিতা নিশ্চিত করে।
- ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন: প্রক্রিয়ার মাধ্যমে, ব্যবহারকারী একাধিক অ্যাপ্লিকেশন একসাথে চালাতে পারেন (যেমন, ব্রাউজিং এবং ফাইল ম্যানেজিং এক সাথে)। এটি মাল্টি-টাস্কিং এর সুবিধা দেয়।
- নিরাপত্তা ও কন্ট্রোল: প্রতিটি প্রক্রিয়ার নিজস্ব অধিকার এবং নিরাপত্তা বিধিনিষেধ থাকে, যা সিস্টেমের নিরাপত্তা এবং স্থিতিশীলতা নিশ্চিত করে। প্রক্রিয়া ব্যবস্থাপনা নিরাপত্তা লেভেল নিশ্চিত করতে সাহায্য করে।
- দ্রুত ফলাফল প্রদান: প্রক্রিয়া সিস্টেমের মাধ্যমে, সিস্টেম বিভিন্ন কাজ একযোগে করতে পারে, যার ফলে দ্রুত ফলাফল পাওয়া যায়।
প্রক্রিয়ার জীবনচক্র (Life Cycle of a Process)
প্রক্রিয়া সাধারণত একাধিক ধাপে চলে, এবং এই ধাপগুলোকে প্রক্রিয়ার জীবনচক্র বলা হয়:
- প্রক্রিয়া সৃষ্টির সময় (Process Creation):
- যখন একটি প্রোগ্রাম চালানো হয়, তখন সিস্টেম নতুন প্রক্রিয়া তৈরি করে।
- এটি প্রক্রিয়ার জন্য মেমরি এলোকেট এবং প্রাথমিক কনফিগারেশন সেটআপ করে।
- প্রক্রিয়ার রান (Process Running):
- একবার প্রক্রিয়া তৈরি হলে, এটি CPU সময় এবং মেমরি ব্যবহার করতে শুরু করে।
- প্রক্রিয়া বিভিন্ন স্টেট যেমন রানিং (Running), ওয়েটিং (Waiting) এবং স্টপড (Stopped) অবস্থায় থাকতে পারে।
- প্রক্রিয়া শেষ হওয়া (Process Termination):
- যখন প্রক্রিয়া তার কাজ সম্পন্ন করে, তখন এটি সিস্টেম থেকে বন্ধ হয়ে যায়।
- এই সময় এটি সিস্টেম রিসোর্স (যেমন মেমরি) মুক্ত করে এবং প্রক্রিয়া সংশ্লিষ্ট সমস্ত ডেটা পরিষ্কার করে।
সারসংক্ষেপ
প্রক্রিয়া হলো একটি চলমান প্রোগ্রাম যা কম্পিউটার সিস্টেমে একটি নির্দিষ্ট কাজ সম্পাদন করে। এটি প্রোগ্রামের কোড, ডেটা এবং মেমরি ব্যবস্থাপনার মাধ্যমে কাজ সম্পন্ন করে এবং সিস্টেমের মাল্টি-টাস্কিং এবং রিসোর্স ব্যবস্থাপনায় গুরুত্বপূর্ণ ভূমিকা পালন করে। প্রক্রিয়া ব্যবস্থাপনা সিস্টেমের কার্যকারিতা, নিরাপত্তা এবং কর্মক্ষমতা নিশ্চিত করতে সাহায্য করে।
প্রক্রিয়া সম্পর্কিত কমান্ড: ps, top, htop
UNIX এবং LINUX সিস্টেমে প্রক্রিয়া (process) কম্পিউটারের কর্মক্ষমতার জন্য অত্যন্ত গুরুত্বপূর্ণ। প্রতিটি চলমান প্রোগ্রাম বা অ্যাপ্লিকেশন সিস্টেমে একটি প্রক্রিয়া হিসাবে চলে। প্রক্রিয়া সম্পর্কিত কমান্ডগুলি ব্যবহার করে আমরা সিস্টেমে চলমান প্রক্রিয়াগুলির অবস্থা দেখতে পারি এবং সেই অনুযায়ী সিস্টেমের পারফরম্যান্স মনিটর করতে পারি। কিছু গুরুত্বপূর্ণ প্রক্রিয়া সম্পর্কিত কমান্ড হল: ps, top, এবং **htop**।
১. ps কমান্ড: প্রক্রিয়া স্টেটাস
ps (Process Status) কমান্ডটি সিস্টেমে চলমান প্রক্রিয়াগুলির সংক্ষিপ্ত তালিকা দেখায়। এটি একটি অবিচ্ছিন্ন কমান্ড নয়, অর্থাৎ এটি একবার চালানো হলে তা কেবল বর্তমান মুহূর্তে চলমান প্রক্রিয়া প্রদর্শন করবে।
সিনট্যাক্স:
ps [options]কিছু সাধারণ ব্যবহার:
সাধারণ প্রক্রিয়া তালিকা:
psএটি বর্তমানে লগ ইন করা ব্যবহারকারীর সকল প্রক্রিয়া দেখাবে।
সকল চলমান প্রক্রিয়া দেখানো (যা অন্য ব্যবহারকারীরও হতে পারে):
ps -eঅথবা
ps -Aসম্পূর্ণ তথ্য সহ প্রক্রিয়া তালিকা:
ps -efএই কমান্ডটি সিস্টেমের সমস্ত প্রক্রিয়া এবং তাদের বিস্তারিত তথ্য দেখাবে, যেমন PID, PPID (parent process ID), ইউজার, কমান্ড ইত্যাদি।
প্রক্রিয়ার ট্রি ভিউ:
ps axjfএটি প্রক্রিয়াগুলির প্যারেন্ট-চাইল্ড সম্পর্ক দেখাবে (যেমন প্রক্রিয়া কীভাবে একে অপরকে সৃষ্টি করেছে)।
ব্যবহারকারীর প্রক্রিয়া দেখানো:
ps -u usernameএটি নির্দিষ্ট ব্যবহারকারীর চলমান প্রক্রিয়া দেখাবে।
২. top কমান্ড: চলমান প্রক্রিয়াগুলির রিয়েল-টাইম মনিটরিং
top কমান্ডটি সিস্টেমে চলমান প্রক্রিয়া সম্পর্কে রিয়েল-টাইম তথ্য প্রদান করে। এটি সিস্টেমের CPU, মেমরি ব্যবহার, প্রক্রিয়া র্যাঙ্ক, এবং অন্যান্য গুরুত্বপূর্ণ পরিসংখ্যান দেখানোর জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
topকিছু সাধারণ ব্যবহার:
টপ কমান্ড চালানো:
topএটি চলমান সমস্ত প্রক্রিয়া এবং সিস্টেমের গুরুত্বপূর্ণ পরিসংখ্যান দেখাবে। এটি একটি রিয়েল-টাইম অ্যাপ্লিকেশন, যার ফলে প্রক্রিয়াগুলির তথ্য প্রতিনিয়ত আপডেট হবে।
- প্রক্রিয়া অনুসন্ধান:
topচালানোর পর, আপনিPচাপলে CPU ব্যবহার অনুযায়ী প্রক্রিয়া সাজানো হবে এবংMচাপলে মেমরি ব্যবহার অনুযায়ী সাজানো হবে। - ফিল্টারিং এবং অর্ডারিং:
top-এর ভিতরে আপনিFপ্রেস করে কলাম যুক্ত করতে বা সরাতে পারেন, এবংRপ্রেস করে অর্ডার পরিবর্তন করতে পারেন। - প্রক্রিয়া বন্ধ করা:
topএর ভিতরে আপনি একটি প্রক্রিয়া বন্ধ করতেkচাপলে, এবং পরে PID প্রবেশ করলেই সেই প্রক্রিয়া বন্ধ হয়ে যাবে।
৩. htop কমান্ড: উন্নত রিয়েল-টাইম প্রক্রিয়া মনিটরিং
htop হল top কমান্ডের একটি উন্নত সংস্করণ, যা বেশি ইন্টারফেস-ভিত্তিক এবং ব্যবহারকারীকে আরও সহজে প্রক্রিয়া এবং সিস্টেম পরিসংখ্যান দেখতে সাহায্য করে। এটি টেক্সট-বেসড ইন্টারফেসে রঙিন এবং ব্যবহারকারী-বান্ধব।
সিনট্যাক্স:
htopকিছু সাধারণ ব্যবহার:
htopচালানো:htopএটি আপনার সিস্টেমের চলমান প্রক্রিয়া একটি রঙিন ইন্টারফেসে প্রদর্শন করবে এবং আপনাকে বিভিন্ন ফিল্টার, অর্ডারিং, এবং প্রক্রিয়া ম্যানেজমেন্টের জন্য আরও বেশি সুবিধা দেবে।
- সার্চ করা:
htop-এ আপনিF3চাপলে প্রক্রিয়া অনুসন্ধান করতে পারবেন, এবংF4চাপলে প্রক্রিয়া ফিল্টার করতে পারবেন। - প্রক্রিয়া ম্যানেজমেন্ট:
htop-এ একটি প্রক্রিয়া নির্বাচন করার পর, আপনিF9চাপলে সেটি বন্ধ করতে পারবেন, এবংF7অথবাF8চাপলে সেই প্রক্রিয়ার কমান্ডের প্রাধান্য পরিবর্তন করতে পারবেন। - কম্পিউটার পারফরম্যান্স মনিটরিং:
এটি CPU, RAM, সুই্যাপ, ডিস্ক, এবং নেটওয়ার্কের ব্যবহারের একটি সরাসরি গ্রাফ দেখায়, যা সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য অত্যন্ত সহায়ক।
সারসংক্ষেপ
ps: ফাইল বা প্রক্রিয়া সম্পর্কিত তথ্য দেখানোর জন্য ব্যবহৃত হয়, তবে এটি রিয়েল-টাইম তথ্য সরবরাহ করে না এবং একবারে শুধুমাত্র একটি স্ট্যাটিক ভিউ দেখায়।top: রিয়েল-টাইম প্রক্রিয়া মনিটরিং সরঞ্জাম, যা সিস্টেমের পারফরম্যান্স ও চলমান প্রক্রিয়া সম্পর্কে তথ্য দেয় এবং কিছু ফাংশন দিয়ে প্রক্রিয়া পরিচালনা করতে দেয়।htop:topএর উন্নত সংস্করণ, যা আরও উন্নত ও ব্যবহারকারী-বান্ধব ইন্টারফেস এবং কাস্টমাইজেশন সুবিধা প্রদান করে।
এই তিনটি কমান্ড সিস্টেম প্রশাসক এবং উন্নয়নকারীদের জন্য গুরুত্বপূর্ণ, কারণ এগুলি সিস্টেমের স্বাস্থ্য এবং প্রক্রিয়া সম্পর্কিত তথ্য সরবরাহ করতে সহায়ক।
প্রক্রিয়া হত্যা এবং নিয়ন্ত্রণ: kill, killall, pkill
UNIX এবং LINUX সিস্টেমে প্রক্রিয়া হত্যা বা প্রক্রিয়া নিয়ন্ত্রণ এমন একটি গুরুত্বপূর্ণ কার্যক্রম, যা সিস্টেমের কার্যক্ষমতা এবং স্টেবিলিটি বজায় রাখার জন্য ব্যবহার করা হয়। যখন কোনো প্রক্রিয়া সঠিকভাবে কাজ করছে না বা তা অকার্যকর হয়ে গেছে, তখন আপনি এই প্রক্রিয়াগুলি বন্ধ করতে বা হত্যা করতে পারেন। এতে সহায়ক তিনটি প্রধান কমান্ড হল kill, killall, এবং **pkill**। এগুলি প্রক্রিয়া ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।
1. kill কমান্ড
kill কমান্ডটি একটি বা একাধিক প্রক্রিয়া (process) বন্ধ বা হত্যা করার জন্য ব্যবহৃত হয়। এই কমান্ডটি প্রক্রিয়া আইডেন্টিফায়ার (PID) ব্যবহার করে কাজ করে। PID হল একটি ইউনিক নম্বর যা প্রতিটি চালু প্রক্রিয়া নির্ধারণ করে।
সিনট্যাক্স:
kill [signal] PIDsignal: প্রক্রিয়াটির উপর যে সংকেত পাঠানো হবে। এটি ঐচ্ছিক, এবং যদি সংকেত নির্দিষ্ট না করা হয়, তাহলে ডিফল্ট হিসেবেSIGTERM(15) সংকেত পাঠানো হয়।- PID: প্রক্রিয়ার আইডি নম্বর যা আপনি বন্ধ করতে চান।
কমান্ড উদাহরণ:
প্রক্রিয়া হত্যা করা (PID 1234):
kill 1234এটি PID 1234 প্রক্রিয়া বন্ধ করবে। যদি প্রক্রিয়া বন্ধ না হয়, তাহলে আপনি আরো শক্তিশালী সংকেত পাঠাতে পারেন (যেমন SIGKILL)।
প্রক্রিয়া SIGKILL সংকেত পাঠানো:
kill -9 1234এখানে
-9হলো SIGKILL সংকেত, যা প্রক্রিয়া দ্রুত এবং জোরপূর্বক বন্ধ করে দেয়।SIGTERM সংকেত পাঠানো (ডিফল্ট সংকেত):
kill -15 1234-15হল SIGTERM, যা প্রক্রিয়াকে বন্ধ করার জন্য একটি প্রাথমিক অনুরোধ পাঠায়।সবগুলো প্রক্রিয়া বন্ধ করা:
kill -9 $(ps -e | grep process_name | awk '{print $1}')এটি একটি নির্দিষ্ট প্রক্রিয়ার নাম অনুসারে সকল প্রক্রিয়া বন্ধ করবে।
2. killall কমান্ড
killall কমান্ডটি নির্দিষ্ট নামের সাথে সমস্ত প্রক্রিয়া হত্যা করতে ব্যবহৃত হয়। আপনি যখন কোনো প্রক্রিয়ার নাম জানেন, তখন আপনি সেই নামের সমস্ত চলমান প্রক্রিয়া বন্ধ করতে killall ব্যবহার করতে পারেন।
সিনট্যাক্স:
killall [signal] process_namesignal: প্রক্রিয়ার উপর যে সংকেত পাঠানো হবে। (যেমন-9বা-15)process_name: প্রক্রিয়ার নাম (যেমনfirefox,apache2, ইত্যাদি)
কমান্ড উদাহরণ:
প্রক্রিয়া বন্ধ করা (যেমন
firefox):killall firefoxএটি সকল
firefoxপ্রক্রিয়া বন্ধ করবে।SIGKILL সংকেত পাঠানো:
killall -9 firefoxএটি
firefoxপ্রক্রিয়া জোরপূর্বক বন্ধ করবে।একটি গ্রুপের সকল প্রক্রিয়া বন্ধ করা:
killall -9 apache2এটি
apache2সার্ভারের সকল চলমান প্রক্রিয়া বন্ধ করবে।
3. pkill কমান্ড
pkill (প্রক্রিয়া হত্যা) কমান্ডটি killall এর মতো কাজ করে, তবে এটি আরও নমনীয় এবং শক্তিশালী। pkill কমান্ডটি একটি প্রক্রিয়ার নামের সাথে সাথে তার অন্যান্য বৈশিষ্ট্যও অনুসন্ধান করতে পারে (যেমন ব্যবহারকারীর নাম, UID, প্রক্রিয়ার সময় ইত্যাদি)।
সিনট্যাক্স:
pkill [options] process_nameoptions: প্যারামিটার বা অপশনগুলি যা আপনি প্রক্রিয়ার সাথে সম্পর্কিত নির্দিষ্ট বৈশিষ্ট্য অনুসন্ধান করতে পারেন।process_name: প্রক্রিয়ার নাম বা অংশ (যেমনfirefox,python3, ইত্যাদি)
কমান্ড উদাহরণ:
প্রক্রিয়া বন্ধ করা (যেমন
firefox):pkill firefoxএটি
firefoxনামক সমস্ত চলমান প্রক্রিয়া বন্ধ করবে।SIGKILL সংকেত পাঠানো:
pkill -9 firefoxএটি
firefoxপ্রক্রিয়াকে জোরপূর্বক বন্ধ করবে।একটি নির্দিষ্ট ব্যবহারকারীর প্রক্রিয়া বন্ধ করা:
pkill -u username process_nameএটি
usernameব্যবহারকারীরprocess_nameপ্রক্রিয়া বন্ধ করবে।প্রক্রিয়া সময়ের উপর ভিত্তি করে প্রক্রিয়া বন্ধ করা:
pkill -o -f process_nameএটি
process_nameএর সবচেয়ে পুরোনো প্রক্রিয়া বন্ধ করবে।
সারসংক্ষেপ
killকমান্ড একটি নির্দিষ্ট PID দ্বারা প্রক্রিয়া হত্যা করতে ব্যবহৃত হয়, যেখানে আপনি সংকেত নির্দিষ্ট করতে পারেন।killallকমান্ডটি একই নামের সমস্ত প্রক্রিয়া বন্ধ করতে ব্যবহৃত হয়।pkillকমান্ডটিkillallএর মতো কাজ করে, তবে এটি আরও নমনীয় এবং শক্তিশালী, যেমন ব্যবহারকারী, প্রক্রিয়ার সময় বা নামের অংশের ভিত্তিতে প্রক্রিয়া বন্ধ করা।
এই কমান্ডগুলি ব্যবহারকারীদের প্রক্রিয়া নিয়ন্ত্রণ এবং তাদের কার্যক্ষমতা বজায় রাখতে সহায়ক।
ব্যাকগ্রাউন্ড এবং ফরগ্রাউন্ড জব: bg, fg, jobs
UNIX এবং LINUX অপারেটিং সিস্টেমে ব্যাকগ্রাউন্ড এবং ফরগ্রাউন্ড জব ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ। এগুলি সিস্টেমের মধ্যে একাধিক প্রক্রিয়া বা কাজ পরিচালনা করতে সাহায্য করে, যাতে ব্যবহারকারীরা একযোগভাবে একাধিক কাজ করতে পারেন। এর জন্য বিভিন্ন কমান্ড ব্যবহার করা হয়, যেমন bg, fg, এবং **jobs**।
1. ব্যাকগ্রাউন্ড জব (Background Job)
ব্যাকগ্রাউন্ড জব হল এমন একটি প্রক্রিয়া যা চালু থাকা অবস্থায় শেলের কন্ট্রোলের বাইরে চলে যায়। এটি মূল শেলের সাথে সরাসরি সংযুক্ত থাকে না, তাই ব্যবহারকারী শেলের অন্যান্য কাজ চালানোর সময় এই প্রক্রিয়া চলতে থাকে।
যখন কোনো প্রোগ্রাম ফরগ্রাউন্ডে চলে, তখন সেটি শেলের কন্ট্রোল নেয় এবং ব্যবহারকারী তার সাথে সরাসরি কাজ করতে থাকে। কিন্তু যদি ব্যবহারকারী সেই প্রোগ্রামটি ব্যাকগ্রাউন্ডে চালাতে চায়, তবে সেটি অন্য প্রসেস হিসেবে চলে এবং ব্যবহারকারী আবার শেলের সাথে কাজ করতে পারেন।
ব্যাকগ্রাউন্ডে প্রোগ্রাম চালানোর জন্য & ব্যবহার করা হয়।
উদাহরণ:
long_running_process &এই কমান্ডটি long_running_process প্রোগ্রামটি ব্যাকগ্রাউন্ডে চালাবে এবং ব্যবহারকারী আবার শেলের সাথে কাজ করতে পারবে।
2. ফরগ্রাউন্ড জব (Foreground Job)
ফরগ্রাউন্ড জব হল একটি প্রক্রিয়া যা শেলের কন্ট্রোলের মধ্যে চলে আসে, এবং এর আউটপুট সরাসরি শেলে প্রদর্শিত হয়। ফরগ্রাউন্ডে একটি প্রোগ্রাম চালানোর সময়, শেলের কন্ট্রোল ওই প্রক্রিয়ায় থাকে এবং অন্য কোনো কমান্ড চালানো যায় না যতক্ষণ না এটি সম্পূর্ণ হয়।
যখন একটি প্রোগ্রাম ফরগ্রাউন্ডে চলে, তখন তা শেলের পুরো কন্ট্রোল নিয়ে নেয়, এবং এর কাজ শেষ হওয়া পর্যন্ত ব্যবহারকারী আর কোনো কমান্ড চালাতে পারেন না।
উদাহরণ:
long_running_processএই কমান্ডটি long_running_process প্রোগ্রামটি ফরগ্রাউন্ডে চালাবে এবং এটি সম্পন্ন না হওয়া পর্যন্ত শেল থেকে অন্য কোনো কাজ করা যাবে না।
3. bg কমান্ড
bg (ব্যাকগ্রাউন্ড) কমান্ড ব্যবহার করা হয় একটি স্টপ করা (paused) জবকে ব্যাকগ্রাউন্ডে চালানোর জন্য। শেল যখন কোনো জবকে স্টপ করে দেয়, তখন আপনি bg কমান্ড ব্যবহার করে সেই জবকে ব্যাকগ্রাউন্ডে চালাতে পারেন।
ব্যবহার:
bg [job_id]এখানে, job_id হল সেই জবের আইডি যেটি আপনি ব্যাকগ্রাউন্ডে চালাতে চান। যদি কোনো job_id না দেয়া হয়, তবে এটি শেষ স্টপ করা জবটিকে ব্যাকগ্রাউন্ডে চালাবে।
উদাহরণ:
bg 1এই কমান্ডটি job_id 1 নামক স্টপ করা জবটিকে ব্যাকগ্রাউন্ডে চালাবে।
4. fg কমান্ড
fg (ফরগ্রাউন্ড) কমান্ড ব্যবহার করা হয় ব্যাকগ্রাউন্ডে চলমান একটি জবকে ফরগ্রাউন্ডে আনার জন্য। এর মাধ্যমে, আপনি যে ব্যাকগ্রাউন্ড জবটি চালাচ্ছেন, সেটিকে শেলের কন্ট্রোলের মধ্যে ফিরিয়ে আনতে পারবেন এবং তার আউটপুট দেখতে পারবেন।
ব্যবহার:
fg [job_id]এখানে, job_id হল সেই জবের আইডি যেটি আপনি ফরগ্রাউন্ডে আনার জন্য চান। যদি কোনো job_id না দেয়া হয়, তবে এটি শেষ ব্যাকগ্রাউন্ড জবটিকে ফরগ্রাউন্ডে নিয়ে আসবে।
উদাহরণ:
fg 1এই কমান্ডটি job_id 1 নামক ব্যাকগ্রাউন্ড জবটিকে ফরগ্রাউন্ডে নিয়ে আসবে।
5. jobs কমান্ড
jobs কমান্ড ব্যবহৃত হয় বর্তমান শেলের মধ্যে চলমান সমস্ত জবের তালিকা দেখতে। এটি ফরগ্রাউন্ড এবং ব্যাকগ্রাউন্ডে চলমান জবগুলির স্টেট (যেমন চলমান, সাসপেন্ড বা স্টপ করা) দেখায়।
ব্যবহার:
jobsউদাহরণ:
jobsএই কমান্ডটি সমস্ত চলমান জবের তালিকা দেখাবে, তাদের স্ট্যাটাসসহ (যেমন Running, Stopped, ইত্যাদি)।
আউটপুট উদাহরণ:
[1]+ 2345 Running long_running_process &
[2]- 2346 Stopped another_processএখানে, 2345 এবং 2346 হল জবের আইডি, এবং Running এবং Stopped হল তাদের স্টেট।
ব্যাকগ্রাউন্ড এবং ফরগ্রাউন্ড জব ব্যবস্থাপনা
| কমান্ড | বর্ণনা | উদাহরণ |
|---|---|---|
bg | স্টপ করা জবকে ব্যাকগ্রাউন্ডে চালানো | bg 1 |
fg | ব্যাকগ্রাউন্ড জবকে ফরগ্রাউন্ডে আনা | fg 1 |
jobs | সমস্ত চলমান জবের তালিকা দেখা | jobs |
সারসংক্ষেপ
ব্যাকগ্রাউন্ড জব এবং ফরগ্রাউন্ড জব ব্যবস্থাপনা UNIX এবং LINUX সিস্টেমে খুবই গুরুত্বপূর্ণ। bg কমান্ড ব্যাকগ্রাউন্ডে একটি জব চালাতে সাহায্য করে, fg কমান্ড একটি ব্যাকগ্রাউন্ড জবকে ফরগ্রাউন্ডে নিয়ে আসে, এবং jobs কমান্ড চলমান জবের তালিকা প্রদর্শন করে। এই কমান্ডগুলির মাধ্যমে ব্যবহারকারীরা সহজেই তাদের কাজের প্রবাহ নিয়ন্ত্রণ করতে পারেন।
nice এবং renice দিয়ে প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণ
UNIX এবং LINUX সিস্টেমে, প্রক্রিয়াগুলোর CPU রিসোর্স ব্যবহারের প্রাধান্য নিয়ন্ত্রণ করার জন্য nice এবং renice কমান্ড ব্যবহার করা হয়। প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণের মাধ্যমে আপনি একটি প্রক্রিয়াকে বেশি বা কম CPU সময় দিতে পারেন, যা সিস্টেমের পারফরম্যান্স এবং রেসপন্স টাইমে প্রভাব ফেলে।
1. nice কমান্ড
nice কমান্ড নতুন প্রক্রিয়া শুরু করার সময় সেটির প্রাধান্য (priority) নির্ধারণ করতে ব্যবহৃত হয়। nice এর মাধ্যমে প্রক্রিয়ার প্রাধান্য বৃদ্ধি বা হ্রাস করা যায়। প্রক্রিয়ার প্রাধান্য কমানোর জন্য nice ব্যবহার করা হয়, এবং সাধারণত এটি CPU রিসোর্স কম গ্রহণ করে।
বেসিক সিনট্যাক্স:
nice -n priority_value commandpriority_value: এখানে একটি পূর্ণসংখ্যা দেওয়া হয়, যার মান -20 থেকে 19 এর মধ্যে হতে পারে।-20হলো সর্বোচ্চ প্রাধান্য (একটি প্রক্রিয়ার জন্য সবচেয়ে বেশি CPU রিসোর্স প্রাপ্তি), এবং19হলো সর্বনিম্ন প্রাধান্য (কম CPU রিসোর্স প্রাপ্তি)।
command: আপনি যে প্রক্রিয়া চালাতে চান, তার কমান্ড।
উদাহরণ:
একটি প্রক্রিয়া বেশি CPU প্রাধান্য সহ চালাতে:
nice -n -10 commandএটি
commandপ্রক্রিয়াকে একটি উচ্চ প্রাধান্য প্রদান করবে।একটি প্রক্রিয়া কম CPU প্রাধান্য সহ চালাতে:
nice -n 10 commandএটি
commandপ্রক্রিয়াকে একটি কম প্রাধান্য প্রদান করবে।কোনো প্রোগ্রামকে খুব কম প্রাধান্য দিয়ে চালানো (কম CPU ব্যবহার):
nice -n 19 command
2. renice কমান্ড
renice কমান্ডটি চলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে ব্যবহৃত হয়। অর্থাৎ, আপনি যদি কোনো প্রক্রিয়া চলমান অবস্থায় এর প্রাধান্য পরিবর্তন করতে চান, তবে renice ব্যবহার করতে হবে।
বেসিক সিনট্যাক্স:
renice priority_value -p process_idpriority_value: নতুন প্রাধান্য মান (যেমন -20 থেকে 19)।process_id: চলমান প্রক্রিয়ার PID (Process ID), যা আপনিpsবাtopকমান্ড দিয়ে পেতে পারেন।
উদাহরণ:
একটি চলমান প্রক্রিয়ার প্রাধান্য বৃদ্ধি করতে:
renice -10 -p 1234এখানে
1234হলো প্রক্রিয়ার PID এবং এটি-10প্রাধান্য পাবে।একটি চলমান প্রক্রিয়ার প্রাধান্য কমাতে:
renice 10 -p 1234এটি
1234PID এর প্রক্রিয়াকে10প্রাধান্য দিবে, যা কম CPU রিসোর্স ব্যবহার করবে।একাধিক প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে:
renice 5 -p 1234 -p 5678এটি
1234এবং5678PID এর প্রক্রিয়ার প্রাধান্য5সেট করবে।
3. nice এবং renice এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | nice | renice |
|---|---|---|
| প্রক্রিয়া শুরু | নতুন প্রক্রিয়া শুরু করার সময় প্রাধান্য নির্ধারণ করে | চলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করে |
| ব্যবহার | নতুন প্রক্রিয়া চালানোর সময় nice ব্যবহৃত হয় | চলমান প্রক্রিয়া থেকে প্রাধান্য পরিবর্তন করতে renice ব্যবহৃত হয় |
| প্রাধান্য মান | -20 (উচ্চ প্রাধান্য) থেকে 19 (নিম্ন প্রাধান্য) | -20 (উচ্চ প্রাধান্য) থেকে 19 (নিম্ন প্রাধান্য) |
সারসংক্ষেপ
niceকমান্ড ব্যবহার করা হয় নতুন প্রক্রিয়া শুরু করার সময় তার প্রাধান্য নির্ধারণ করতে, এবং প্রক্রিয়ার প্রাধান্য কমানো বা বাড়ানো যায়।reniceকমান্ড চলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে ব্যবহৃত হয়।- প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণ করা সিস্টেমের পারফরম্যান্স উন্নত করতে সাহায্য করে, বিশেষ করে যখন একাধিক প্রক্রিয়া একসঙ্গে চলছে এবং CPU রিসোর্স সীমিত।
Read more