Skill

প্রক্রিয়া এবং জব ম্যানেজমেন্ট

ইউনিক্স/লিনাক্স (UNIX / LINUX) - Computer Programming

194

প্রক্রিয়া এবং জব ম্যানেজমেন্ট

UNIX এবং LINUX সিস্টেমে প্রক্রিয়া (process) এবং জব (job) ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ। সিস্টেমের কার্যকরীতা এবং রিসোর্স ব্যবস্থাপনা সঠিকভাবে কাজ করার জন্য এগুলি অপরিহার্য। প্রক্রিয়া এবং জবের ম্যানেজমেন্টে কমান্ড এবং টুলস ব্যবহার করে ব্যবহারকারী প্রক্রিয়া শুরু করা, থামানো, সাসপেন্ড করা, এবং পরিচালনা করতে পারেন।


1. প্রক্রিয়া (Process) কী?

প্রক্রিয়া একটি কার্যকরী প্রোগ্রাম যা সিস্টেমে চলমান থাকে। যখন কোনো প্রোগ্রাম চালানো হয়, তখন তা একটি প্রক্রিয়া হিসেবে কাজ শুরু করে এবং এটি একাধিক স্টেপে কাজ করতে থাকে (যেমন CPU, মেমরি ব্যবহার, ইনপুট/আউটপুট ইত্যাদি)। UNIX এবং LINUX সিস্টেমে প্রতিটি প্রক্রিয়ার একটি প্রক্রিয়া আইডি (PID) থাকে যা ইউনিকভাবে সেটি চিহ্নিত করে।


2. প্রক্রিয়া সম্পর্কিত কমান্ড

  • ps: চলমান প্রক্রিয়াগুলোর একটি সংক্ষিপ্ত তালিকা দেখতে ps কমান্ড ব্যবহার করা হয়।

    উদাহরণ:

    ps

    এটি শুধুমাত্র বর্তমান ব্যবহারকারীর চলমান প্রক্রিয়া দেখাবে।

    ps aux: সমস্ত ব্যবহারকারীর সকল প্রক্রিয়া দেখাবে।

    ps aux
  • top: সিস্টেমে চলমান সকল প্রক্রিয়া এবং তাদের রিসোর্স ব্যবহার (CPU, মেমরি ইত্যাদি) দেখতে top কমান্ড ব্যবহার করা হয়।

    উদাহরণ:

    top

    এটি রিয়েল-টাইমে সিস্টেমের প্রক্রিয়া এবং তাদের রিসোর্স ব্যবহারের তালিকা দেখাবে।

  • htop: top এর একটি উন্নত সংস্করণ যা আরও ইন্টারেক্টিভ এবং ব্যবহারকারী-বান্ধব।

    উদাহরণ:

    htop
  • pidof: কোনো প্রোগ্রামের প্রক্রিয়া আইডি (PID) খুঁজে পেতে pidof কমান্ড ব্যবহার করা হয়।

    উদাহরণ:

    pidof apache2

3. প্রক্রিয়া নিয়ন্ত্রণ (Process Control)

  • kill: একটি প্রক্রিয়া থামানোর জন্য kill কমান্ড ব্যবহার করা হয়। এটি প্রক্রিয়া আইডি (PID) দিয়ে নির্দিষ্ট প্রক্রিয়া বন্ধ করে।

    উদাহরণ:

    kill 1234

    এখানে 1234 হলো বন্ধ করার জন্য প্রক্রিয়া আইডি (PID)।

    • kill -9: যদি একটি প্রক্রিয়া সাধারণভাবে বন্ধ না হয়, তবে -9 অপশন ব্যবহার করা যেতে পারে যা প্রক্রিয়াকে এক্সপ্লিসিটভাবে টার্মিনেট (ধ্বংস) করে দেয়।
    kill -9 1234
  • bg: একটি সাসপেন্ড (pause) করা প্রক্রিয়াকে ব্যাকগ্রাউন্ডে চালানোর জন্য bg কমান্ড ব্যবহার করা হয়।

    উদাহরণ:

    bg %1

    এখানে %1 হচ্ছে সাসপেন্ড করা প্রক্রিয়ার জব নম্বর।

  • fg: ব্যাকগ্রাউন্ডে চলমান একটি প্রক্রিয়া সামনে নিয়ে আসতে fg কমান্ড ব্যবহার করা হয়।

    উদাহরণ:

    fg %1
  • jobs: চলমান অথবা সাসপেন্ড করা জবের তালিকা দেখতে 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 সিস্টেমে সঠিকভাবে কাজ করার জন্য অপরিহার্য।

Content added By

প্রক্রিয়া (Process) কী এবং কেন দরকার

প্রক্রিয়া (Process) কম্পিউটার সিস্টেমে একটি চলমান প্রোগ্রাম বা কার্যক্রমের প্রতিনিধিত্ব করে। এটি মূলত সিস্টেমের একটি অংশ হিসেবে রানটাইমে কার্যকরী হওয়া একটি প্রোগ্রাম, যেখানে কোড, ডেটা এবং প্রোগ্রামের সমস্ত কার্যকরী অংশ একত্রিত থাকে। সিস্টেমে যখন একটি প্রোগ্রাম রান করে, তখন তার কার্যকারিতা শুরু হতে এবং শেষ হওয়া পর্যন্ত যা ঘটে, তা একটি প্রক্রিয়া হিসেবেই বিবেচিত হয়।


প্রক্রিয়া কী?

প্রক্রিয়া (Process) একটি প্রোগ্রামের চলমান উদাহরণ যা কার্যকরী হয় এবং মেমরি বা অন্যান্য সিস্টেম রিসোর্স ব্যবহার করে। এটি সিস্টেমের বিভিন্ন শাখার মাধ্যমে পরিচালিত হয়, যার মধ্যে রয়েছে:

  • প্রোগ্রাম কোড (Text section): প্রোগ্রামের কোড যা সিস্টেমের মাধ্যমে রান করা হয়।
  • ডাটা সেকশন (Data section): প্রোগ্রাম চলাকালীন ব্যবহৃত ডেটা।
  • স্ট্যাক (Stack): ফাংশন কল এবং তার সংশ্লিষ্ট ডেটা ধারণ করে, যা প্রোগ্রামের অস্থায়ী তথ্য রাখে।
  • হিপ (Heap): রানটাইমে ডাইনামিক মেমরি অ্যলোকেশন এর জন্য ব্যবহৃত হয়।

প্রক্রিয়ার জীবনচক্র সাধারণত তিনটি গুরুত্বপূর্ণ পর্যায়ে বিভক্ত হয়:

  1. প্রক্রিয়া সৃষ্টি (Process Creation): একটি প্রোগ্রাম যখন চালানো হয়, তখন এটি একটি প্রক্রিয়ার রূপ নেয়।
  2. প্রক্রিয়ার রান (Process Execution): প্রক্রিয়া চালু থাকলে, এটি CPU এবং অন্যান্য সিস্টেম রিসোর্স ব্যবহার করে কাজ করে।
  3. প্রক্রিয়া শেষ (Process Termination): প্রক্রিয়ার কাজ শেষ হলে, এটি সিস্টেম থেকে বন্ধ হয়ে যায়।

প্রক্রিয়ার ধরন

  • ইন্টারঅ্যাকটিভ প্রক্রিয়া (Interactive Process): ব্যবহারকারী দ্বারা সরাসরি নিয়ন্ত্রিত প্রক্রিয়া, যেমন কমান্ড লাইন বা গ্রাফিকাল ইউজার ইন্টারফেস (GUI) এর মাধ্যমে চালানো প্রক্রিয়া।
  • ব্যাকগ্রাউন্ড প্রক্রিয়া (Background Process): ব্যবহারকারীর সরাসরি ইন্টারঅ্যাকশন ছাড়া চলা প্রক্রিয়া, যা কম্পিউটার সিস্টেমের পেছনে নিরবভাবে কাজ করে।
  • ফোরগ্রাউন্ড প্রক্রিয়া (Foreground Process): ব্যবহারকারী সরাসরি এই প্রক্রিয়াগুলোর সাথে ইন্টারঅ্যাক্ট করেন।

প্রক্রিয়া কেন দরকার?

প্রক্রিয়া কম্পিউটার সিস্টেমে বিভিন্ন কারণে গুরুত্বপূর্ণ। এর কয়েকটি প্রধান কারণ নিম্নে আলোচনা করা হলো:

  1. সম্পাদনার দক্ষতা: একাধিক প্রক্রিয়া সিস্টেমে একে অপরের সাথে সমন্বিতভাবে কাজ করতে পারে, ফলে মাল্টি-টাস্কিং এবং মাল্টি-থ্রেডিং এর মাধ্যমে একাধিক কাজ একই সময়ে করা সম্ভব হয়।
  2. রিসোর্স ব্যবস্থাপনা: প্রক্রিয়া সিস্টেমের রিসোর্স যেমন CPU, মেমরি, এবং ডিস্ক স্পেস ব্যবহার করে কার্যকরভাবে কাজ সম্পাদন করে। প্রতিটি প্রক্রিয়া তার নিজস্ব রিসোর্স ব্যবহার করে, এবং সিস্টেম একাধিক প্রক্রিয়ার মধ্যে রিসোর্স সমন্বয় করতে সক্ষম।
  3. পদ্ধতিগত কার্যকারিতা: বিভিন্ন প্রোগ্রাম, যেমন ওয়েব ব্রাউজার, ডেটাবেস সার্ভার, বা সার্ভিসেস, সাধারণত একাধিক প্রক্রিয়া তৈরি করে, যা একে অপরের সাথে সমন্বিতভাবে কাজ করে এবং সিস্টেমের কার্যকারিতা নিশ্চিত করে।
  4. ব্যবহারকারীর অভিজ্ঞতা উন্নয়ন: প্রক্রিয়ার মাধ্যমে, ব্যবহারকারী একাধিক অ্যাপ্লিকেশন একসাথে চালাতে পারেন (যেমন, ব্রাউজিং এবং ফাইল ম্যানেজিং এক সাথে)। এটি মাল্টি-টাস্কিং এর সুবিধা দেয়।
  5. নিরাপত্তা ও কন্ট্রোল: প্রতিটি প্রক্রিয়ার নিজস্ব অধিকার এবং নিরাপত্তা বিধিনিষেধ থাকে, যা সিস্টেমের নিরাপত্তা এবং স্থিতিশীলতা নিশ্চিত করে। প্রক্রিয়া ব্যবস্থাপনা নিরাপত্তা লেভেল নিশ্চিত করতে সাহায্য করে।
  6. দ্রুত ফলাফল প্রদান: প্রক্রিয়া সিস্টেমের মাধ্যমে, সিস্টেম বিভিন্ন কাজ একযোগে করতে পারে, যার ফলে দ্রুত ফলাফল পাওয়া যায়।

প্রক্রিয়ার জীবনচক্র (Life Cycle of a Process)

প্রক্রিয়া সাধারণত একাধিক ধাপে চলে, এবং এই ধাপগুলোকে প্রক্রিয়ার জীবনচক্র বলা হয়:

  1. প্রক্রিয়া সৃষ্টির সময় (Process Creation):
    • যখন একটি প্রোগ্রাম চালানো হয়, তখন সিস্টেম নতুন প্রক্রিয়া তৈরি করে।
    • এটি প্রক্রিয়ার জন্য মেমরি এলোকেট এবং প্রাথমিক কনফিগারেশন সেটআপ করে।
  2. প্রক্রিয়ার রান (Process Running):
    • একবার প্রক্রিয়া তৈরি হলে, এটি CPU সময় এবং মেমরি ব্যবহার করতে শুরু করে।
    • প্রক্রিয়া বিভিন্ন স্টেট যেমন রানিং (Running), ওয়েটিং (Waiting) এবং স্টপড (Stopped) অবস্থায় থাকতে পারে।
  3. প্রক্রিয়া শেষ হওয়া (Process Termination):
    • যখন প্রক্রিয়া তার কাজ সম্পন্ন করে, তখন এটি সিস্টেম থেকে বন্ধ হয়ে যায়।
    • এই সময় এটি সিস্টেম রিসোর্স (যেমন মেমরি) মুক্ত করে এবং প্রক্রিয়া সংশ্লিষ্ট সমস্ত ডেটা পরিষ্কার করে।

সারসংক্ষেপ

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

Content added By

প্রক্রিয়া সম্পর্কিত কমান্ড: ps, top, htop

UNIX এবং LINUX সিস্টেমে প্রক্রিয়া (process) কম্পিউটারের কর্মক্ষমতার জন্য অত্যন্ত গুরুত্বপূর্ণ। প্রতিটি চলমান প্রোগ্রাম বা অ্যাপ্লিকেশন সিস্টেমে একটি প্রক্রিয়া হিসাবে চলে। প্রক্রিয়া সম্পর্কিত কমান্ডগুলি ব্যবহার করে আমরা সিস্টেমে চলমান প্রক্রিয়াগুলির অবস্থা দেখতে পারি এবং সেই অনুযায়ী সিস্টেমের পারফরম্যান্স মনিটর করতে পারি। কিছু গুরুত্বপূর্ণ প্রক্রিয়া সম্পর্কিত কমান্ড হল: ps, top, এবং **htop**।


১. ps কমান্ড: প্রক্রিয়া স্টেটাস

ps (Process Status) কমান্ডটি সিস্টেমে চলমান প্রক্রিয়াগুলির সংক্ষিপ্ত তালিকা দেখায়। এটি একটি অবিচ্ছিন্ন কমান্ড নয়, অর্থাৎ এটি একবার চালানো হলে তা কেবল বর্তমান মুহূর্তে চলমান প্রক্রিয়া প্রদর্শন করবে।

সিনট্যাক্স:

ps [options]

কিছু সাধারণ ব্যবহার:

  1. সাধারণ প্রক্রিয়া তালিকা:

    ps

    এটি বর্তমানে লগ ইন করা ব্যবহারকারীর সকল প্রক্রিয়া দেখাবে।

  2. সকল চলমান প্রক্রিয়া দেখানো (যা অন্য ব্যবহারকারীরও হতে পারে):

    ps -e

    অথবা

    ps -A
  3. সম্পূর্ণ তথ্য সহ প্রক্রিয়া তালিকা:

    ps -ef

    এই কমান্ডটি সিস্টেমের সমস্ত প্রক্রিয়া এবং তাদের বিস্তারিত তথ্য দেখাবে, যেমন PID, PPID (parent process ID), ইউজার, কমান্ড ইত্যাদি।

  4. প্রক্রিয়ার ট্রি ভিউ:

    ps axjf

    এটি প্রক্রিয়াগুলির প্যারেন্ট-চাইল্ড সম্পর্ক দেখাবে (যেমন প্রক্রিয়া কীভাবে একে অপরকে সৃষ্টি করেছে)।

  5. ব্যবহারকারীর প্রক্রিয়া দেখানো:

    ps -u username

    এটি নির্দিষ্ট ব্যবহারকারীর চলমান প্রক্রিয়া দেখাবে।


২. top কমান্ড: চলমান প্রক্রিয়াগুলির রিয়েল-টাইম মনিটরিং

top কমান্ডটি সিস্টেমে চলমান প্রক্রিয়া সম্পর্কে রিয়েল-টাইম তথ্য প্রদান করে। এটি সিস্টেমের CPU, মেমরি ব্যবহার, প্রক্রিয়া র্যাঙ্ক, এবং অন্যান্য গুরুত্বপূর্ণ পরিসংখ্যান দেখানোর জন্য ব্যবহৃত হয়।

সিনট্যাক্স:

top

কিছু সাধারণ ব্যবহার:

  1. টপ কমান্ড চালানো:

    top

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

  2. প্রক্রিয়া অনুসন্ধান:
    top চালানোর পর, আপনি P চাপলে CPU ব্যবহার অনুযায়ী প্রক্রিয়া সাজানো হবে এবং M চাপলে মেমরি ব্যবহার অনুযায়ী সাজানো হবে।
  3. ফিল্টারিং এবং অর্ডারিং:
    top-এর ভিতরে আপনি F প্রেস করে কলাম যুক্ত করতে বা সরাতে পারেন, এবং R প্রেস করে অর্ডার পরিবর্তন করতে পারেন।
  4. প্রক্রিয়া বন্ধ করা:
    top এর ভিতরে আপনি একটি প্রক্রিয়া বন্ধ করতে k চাপলে, এবং পরে PID প্রবেশ করলেই সেই প্রক্রিয়া বন্ধ হয়ে যাবে।

৩. htop কমান্ড: উন্নত রিয়েল-টাইম প্রক্রিয়া মনিটরিং

htop হল top কমান্ডের একটি উন্নত সংস্করণ, যা বেশি ইন্টারফেস-ভিত্তিক এবং ব্যবহারকারীকে আরও সহজে প্রক্রিয়া এবং সিস্টেম পরিসংখ্যান দেখতে সাহায্য করে। এটি টেক্সট-বেসড ইন্টারফেসে রঙিন এবং ব্যবহারকারী-বান্ধব।

সিনট্যাক্স:

htop

কিছু সাধারণ ব্যবহার:

  1. htop চালানো:

    htop

    এটি আপনার সিস্টেমের চলমান প্রক্রিয়া একটি রঙিন ইন্টারফেসে প্রদর্শন করবে এবং আপনাকে বিভিন্ন ফিল্টার, অর্ডারিং, এবং প্রক্রিয়া ম্যানেজমেন্টের জন্য আরও বেশি সুবিধা দেবে।

  2. সার্চ করা:
    htop-এ আপনি F3 চাপলে প্রক্রিয়া অনুসন্ধান করতে পারবেন, এবং F4 চাপলে প্রক্রিয়া ফিল্টার করতে পারবেন।
  3. প্রক্রিয়া ম্যানেজমেন্ট:
    htop-এ একটি প্রক্রিয়া নির্বাচন করার পর, আপনি F9 চাপলে সেটি বন্ধ করতে পারবেন, এবং F7 অথবা F8 চাপলে সেই প্রক্রিয়ার কমান্ডের প্রাধান্য পরিবর্তন করতে পারবেন।
  4. কম্পিউটার পারফরম্যান্স মনিটরিং:
    এটি CPU, RAM, সুই্যাপ, ডিস্ক, এবং নেটওয়ার্কের ব্যবহারের একটি সরাসরি গ্রাফ দেখায়, যা সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য অত্যন্ত সহায়ক।

সারসংক্ষেপ

  • ps: ফাইল বা প্রক্রিয়া সম্পর্কিত তথ্য দেখানোর জন্য ব্যবহৃত হয়, তবে এটি রিয়েল-টাইম তথ্য সরবরাহ করে না এবং একবারে শুধুমাত্র একটি স্ট্যাটিক ভিউ দেখায়।
  • top: রিয়েল-টাইম প্রক্রিয়া মনিটরিং সরঞ্জাম, যা সিস্টেমের পারফরম্যান্স ও চলমান প্রক্রিয়া সম্পর্কে তথ্য দেয় এবং কিছু ফাংশন দিয়ে প্রক্রিয়া পরিচালনা করতে দেয়।
  • htop: top এর উন্নত সংস্করণ, যা আরও উন্নত ও ব্যবহারকারী-বান্ধব ইন্টারফেস এবং কাস্টমাইজেশন সুবিধা প্রদান করে।

এই তিনটি কমান্ড সিস্টেম প্রশাসক এবং উন্নয়নকারীদের জন্য গুরুত্বপূর্ণ, কারণ এগুলি সিস্টেমের স্বাস্থ্য এবং প্রক্রিয়া সম্পর্কিত তথ্য সরবরাহ করতে সহায়ক।

Content added By

প্রক্রিয়া হত্যা এবং নিয়ন্ত্রণ: kill, killall, pkill

UNIX এবং LINUX সিস্টেমে প্রক্রিয়া হত্যা বা প্রক্রিয়া নিয়ন্ত্রণ এমন একটি গুরুত্বপূর্ণ কার্যক্রম, যা সিস্টেমের কার্যক্ষমতা এবং স্টেবিলিটি বজায় রাখার জন্য ব্যবহার করা হয়। যখন কোনো প্রক্রিয়া সঠিকভাবে কাজ করছে না বা তা অকার্যকর হয়ে গেছে, তখন আপনি এই প্রক্রিয়াগুলি বন্ধ করতে বা হত্যা করতে পারেন। এতে সহায়ক তিনটি প্রধান কমান্ড হল kill, killall, এবং **pkill**। এগুলি প্রক্রিয়া ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।


1. kill কমান্ড

kill কমান্ডটি একটি বা একাধিক প্রক্রিয়া (process) বন্ধ বা হত্যা করার জন্য ব্যবহৃত হয়। এই কমান্ডটি প্রক্রিয়া আইডেন্টিফায়ার (PID) ব্যবহার করে কাজ করে। PID হল একটি ইউনিক নম্বর যা প্রতিটি চালু প্রক্রিয়া নির্ধারণ করে।

সিনট্যাক্স:

kill [signal] PID
  • signal: প্রক্রিয়াটির উপর যে সংকেত পাঠানো হবে। এটি ঐচ্ছিক, এবং যদি সংকেত নির্দিষ্ট না করা হয়, তাহলে ডিফল্ট হিসেবে SIGTERM (15) সংকেত পাঠানো হয়।
  • PID: প্রক্রিয়ার আইডি নম্বর যা আপনি বন্ধ করতে চান।

কমান্ড উদাহরণ:

  1. প্রক্রিয়া হত্যা করা (PID 1234):

    kill 1234

    এটি PID 1234 প্রক্রিয়া বন্ধ করবে। যদি প্রক্রিয়া বন্ধ না হয়, তাহলে আপনি আরো শক্তিশালী সংকেত পাঠাতে পারেন (যেমন SIGKILL)।

  2. প্রক্রিয়া SIGKILL সংকেত পাঠানো:

    kill -9 1234

    এখানে -9 হলো SIGKILL সংকেত, যা প্রক্রিয়া দ্রুত এবং জোরপূর্বক বন্ধ করে দেয়।

  3. SIGTERM সংকেত পাঠানো (ডিফল্ট সংকেত):

    kill -15 1234

    -15 হল SIGTERM, যা প্রক্রিয়াকে বন্ধ করার জন্য একটি প্রাথমিক অনুরোধ পাঠায়।

  4. সবগুলো প্রক্রিয়া বন্ধ করা:

    kill -9 $(ps -e | grep process_name | awk '{print $1}')

    এটি একটি নির্দিষ্ট প্রক্রিয়ার নাম অনুসারে সকল প্রক্রিয়া বন্ধ করবে।


2. killall কমান্ড

killall কমান্ডটি নির্দিষ্ট নামের সাথে সমস্ত প্রক্রিয়া হত্যা করতে ব্যবহৃত হয়। আপনি যখন কোনো প্রক্রিয়ার নাম জানেন, তখন আপনি সেই নামের সমস্ত চলমান প্রক্রিয়া বন্ধ করতে killall ব্যবহার করতে পারেন।

সিনট্যাক্স:

killall [signal] process_name
  • signal: প্রক্রিয়ার উপর যে সংকেত পাঠানো হবে। (যেমন -9 বা -15)
  • process_name: প্রক্রিয়ার নাম (যেমন firefox, apache2, ইত্যাদি)

কমান্ড উদাহরণ:

  1. প্রক্রিয়া বন্ধ করা (যেমন firefox):

    killall firefox

    এটি সকল firefox প্রক্রিয়া বন্ধ করবে।

  2. SIGKILL সংকেত পাঠানো:

    killall -9 firefox

    এটি firefox প্রক্রিয়া জোরপূর্বক বন্ধ করবে।

  3. একটি গ্রুপের সকল প্রক্রিয়া বন্ধ করা:

    killall -9 apache2

    এটি apache2 সার্ভারের সকল চলমান প্রক্রিয়া বন্ধ করবে।


3. pkill কমান্ড

pkill (প্রক্রিয়া হত্যা) কমান্ডটি killall এর মতো কাজ করে, তবে এটি আরও নমনীয় এবং শক্তিশালী। pkill কমান্ডটি একটি প্রক্রিয়ার নামের সাথে সাথে তার অন্যান্য বৈশিষ্ট্যও অনুসন্ধান করতে পারে (যেমন ব্যবহারকারীর নাম, UID, প্রক্রিয়ার সময় ইত্যাদি)।

সিনট্যাক্স:

pkill [options] process_name
  • options: প্যারামিটার বা অপশনগুলি যা আপনি প্রক্রিয়ার সাথে সম্পর্কিত নির্দিষ্ট বৈশিষ্ট্য অনুসন্ধান করতে পারেন।
  • process_name: প্রক্রিয়ার নাম বা অংশ (যেমন firefox, python3, ইত্যাদি)

কমান্ড উদাহরণ:

  1. প্রক্রিয়া বন্ধ করা (যেমন firefox):

    pkill firefox

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

  2. SIGKILL সংকেত পাঠানো:

    pkill -9 firefox

    এটি firefox প্রক্রিয়াকে জোরপূর্বক বন্ধ করবে।

  3. একটি নির্দিষ্ট ব্যবহারকারীর প্রক্রিয়া বন্ধ করা:

    pkill -u username process_name

    এটি username ব্যবহারকারীর process_name প্রক্রিয়া বন্ধ করবে।

  4. প্রক্রিয়া সময়ের উপর ভিত্তি করে প্রক্রিয়া বন্ধ করা:

    pkill -o -f process_name

    এটি process_name এর সবচেয়ে পুরোনো প্রক্রিয়া বন্ধ করবে।


সারসংক্ষেপ

  • kill কমান্ড একটি নির্দিষ্ট PID দ্বারা প্রক্রিয়া হত্যা করতে ব্যবহৃত হয়, যেখানে আপনি সংকেত নির্দিষ্ট করতে পারেন।
  • killall কমান্ডটি একই নামের সমস্ত প্রক্রিয়া বন্ধ করতে ব্যবহৃত হয়।
  • pkill কমান্ডটি killall এর মতো কাজ করে, তবে এটি আরও নমনীয় এবং শক্তিশালী, যেমন ব্যবহারকারী, প্রক্রিয়ার সময় বা নামের অংশের ভিত্তিতে প্রক্রিয়া বন্ধ করা।

এই কমান্ডগুলি ব্যবহারকারীদের প্রক্রিয়া নিয়ন্ত্রণ এবং তাদের কার্যক্ষমতা বজায় রাখতে সহায়ক।

Content added By

ব্যাকগ্রাউন্ড এবং ফরগ্রাউন্ড জব: 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 কমান্ড চলমান জবের তালিকা প্রদর্শন করে। এই কমান্ডগুলির মাধ্যমে ব্যবহারকারীরা সহজেই তাদের কাজের প্রবাহ নিয়ন্ত্রণ করতে পারেন।

Content added By

nice এবং renice দিয়ে প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণ

UNIX এবং LINUX সিস্টেমে, প্রক্রিয়াগুলোর CPU রিসোর্স ব্যবহারের প্রাধান্য নিয়ন্ত্রণ করার জন্য nice এবং renice কমান্ড ব্যবহার করা হয়। প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণের মাধ্যমে আপনি একটি প্রক্রিয়াকে বেশি বা কম CPU সময় দিতে পারেন, যা সিস্টেমের পারফরম্যান্স এবং রেসপন্স টাইমে প্রভাব ফেলে।


1. nice কমান্ড

nice কমান্ড নতুন প্রক্রিয়া শুরু করার সময় সেটির প্রাধান্য (priority) নির্ধারণ করতে ব্যবহৃত হয়। nice এর মাধ্যমে প্রক্রিয়ার প্রাধান্য বৃদ্ধি বা হ্রাস করা যায়। প্রক্রিয়ার প্রাধান্য কমানোর জন্য nice ব্যবহার করা হয়, এবং সাধারণত এটি CPU রিসোর্স কম গ্রহণ করে।

বেসিক সিনট্যাক্স:

nice -n priority_value command
  • priority_value: এখানে একটি পূর্ণসংখ্যা দেওয়া হয়, যার মান -20 থেকে 19 এর মধ্যে হতে পারে।
    • -20 হলো সর্বোচ্চ প্রাধান্য (একটি প্রক্রিয়ার জন্য সবচেয়ে বেশি CPU রিসোর্স প্রাপ্তি), এবং
    • 19 হলো সর্বনিম্ন প্রাধান্য (কম CPU রিসোর্স প্রাপ্তি)।
  • command: আপনি যে প্রক্রিয়া চালাতে চান, তার কমান্ড।

উদাহরণ:

  1. একটি প্রক্রিয়া বেশি CPU প্রাধান্য সহ চালাতে:

    nice -n -10 command

    এটি command প্রক্রিয়াকে একটি উচ্চ প্রাধান্য প্রদান করবে।

  2. একটি প্রক্রিয়া কম CPU প্রাধান্য সহ চালাতে:

    nice -n 10 command

    এটি command প্রক্রিয়াকে একটি কম প্রাধান্য প্রদান করবে।

  3. কোনো প্রোগ্রামকে খুব কম প্রাধান্য দিয়ে চালানো (কম CPU ব্যবহার):

    nice -n 19 command

2. renice কমান্ড

renice কমান্ডটি চলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে ব্যবহৃত হয়। অর্থাৎ, আপনি যদি কোনো প্রক্রিয়া চলমান অবস্থায় এর প্রাধান্য পরিবর্তন করতে চান, তবে renice ব্যবহার করতে হবে।

বেসিক সিনট্যাক্স:

renice priority_value -p process_id
  • priority_value: নতুন প্রাধান্য মান (যেমন -20 থেকে 19)।
  • process_id: চলমান প্রক্রিয়ার PID (Process ID), যা আপনি ps বা top কমান্ড দিয়ে পেতে পারেন।

উদাহরণ:

  1. একটি চলমান প্রক্রিয়ার প্রাধান্য বৃদ্ধি করতে:

    renice -10 -p 1234

    এখানে 1234 হলো প্রক্রিয়ার PID এবং এটি -10 প্রাধান্য পাবে।

  2. একটি চলমান প্রক্রিয়ার প্রাধান্য কমাতে:

    renice 10 -p 1234

    এটি 1234 PID এর প্রক্রিয়াকে 10 প্রাধান্য দিবে, যা কম CPU রিসোর্স ব্যবহার করবে।

  3. একাধিক প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে:

    renice 5 -p 1234 -p 5678

    এটি 1234 এবং 5678 PID এর প্রক্রিয়ার প্রাধান্য 5 সেট করবে।


3. nice এবং renice এর মধ্যে পার্থক্য

বৈশিষ্ট্যnicerenice
প্রক্রিয়া শুরুনতুন প্রক্রিয়া শুরু করার সময় প্রাধান্য নির্ধারণ করেচলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করে
ব্যবহারনতুন প্রক্রিয়া চালানোর সময় nice ব্যবহৃত হয়চলমান প্রক্রিয়া থেকে প্রাধান্য পরিবর্তন করতে renice ব্যবহৃত হয়
প্রাধান্য মান-20 (উচ্চ প্রাধান্য) থেকে 19 (নিম্ন প্রাধান্য)-20 (উচ্চ প্রাধান্য) থেকে 19 (নিম্ন প্রাধান্য)

সারসংক্ষেপ

  • nice কমান্ড ব্যবহার করা হয় নতুন প্রক্রিয়া শুরু করার সময় তার প্রাধান্য নির্ধারণ করতে, এবং প্রক্রিয়ার প্রাধান্য কমানো বা বাড়ানো যায়।
  • renice কমান্ড চলমান প্রক্রিয়ার প্রাধান্য পরিবর্তন করতে ব্যবহৃত হয়।
  • প্রক্রিয়ার প্রাধান্য (priority) নিয়ন্ত্রণ করা সিস্টেমের পারফরম্যান্স উন্নত করতে সাহায্য করে, বিশেষ করে যখন একাধিক প্রক্রিয়া একসঙ্গে চলছে এবং CPU রিসোর্স সীমিত।
Content added By
Promotion

Are you sure to start over?

Loading...