Skip to Content

Killing Processes

Linux-এ process “kill” করা মানে সেটাকে forcefully মুছে দেওয়া না। প্রথমে process-কে বিনয়ের সাথে বন্ধ হতে বলা হয় — কাজ না করলে তারপর force করা হয়। এই পুরো ব্যবস্থাটার নাম Signal।

Signal কী

Signal হলো process-এর সাথে যোগাযোগের ভাষা।

তুমি process-কে সরাসরি কথা বলতে পারো না। Linux-এর মাধ্যমে signal পাঠাও — process সেই signal দেখে কী করবে সিদ্ধান্ত নেয়।

সবচেয়ে গুরুত্বপূর্ণ signals:

SignalNumberকাজProcess কি ignore করতে পারে?
SIGTERM15”অনুগ্রহ করে বন্ধ হও”হ্যাঁ
SIGKILL9”এখনই বন্ধ করো”না — কখনোই না
SIGHUP1”config reload করো”হ্যাঁ
SIGSTOP19”থামো”না
SIGCONT18”চালু হও”না
SIGINT2”interrupt করো” (Ctrl+C)হ্যাঁ

SIGTERM vs SIGKILL — পার্থক্যটা জরুরি:

SIGTERM পাঠালে Linux process-কে বলে “বন্ধ হও”। Process চাইলে এই signal ধরতে পারে, নিজের কাজ গুছিয়ে (files save করা, connections বন্ধ করা) তারপর exit করতে পারে। চাইলে ignore-ও করতে পারে।

SIGKILL একদম আলাদা — এটা process-এর কাছে যায়ই না। Kernel সরাসরি সেই process-কে memory থেকে মুছে দেয়। Process জানতেও পারে না কী হলো।

SIGTERM: তুমি → Linux → process (process জানে, respond করতে পারে) SIGKILL: তুমি → Linux → Kernel সরাসরি process মুছে দেয়

সবসময় আগে SIGTERM চেষ্টা করো। Database বা web server-এ SIGKILL দিলে চলমান অপারেশন মাঝপথে কেটে যেতে পারে — data corrupt হতে পারে। SIGTERM দিলে সে নিজে data save করে তারপর বন্ধ হয়।

kill

PID দিয়ে process-কে signal পাঠাও।

Terminal
# আগে PID খোঁজো ps aux | grep nginx # omar 5678 0.1 0.2 nginx # Graceful kill — SIGTERM (default) kill 5678 # কাজ না করলে — force kill (SIGKILL) kill -9 5678 # অথবা kill -KILL 5678 # Config reload — SIGHUP (service restart না করে) kill -1 5678 kill -HUP 5678

Workflow: process বন্ধ করো

Terminal
# Step 1: PID খোঁজো ps aux | grep python3 # omar 1234 python3 app.py # Step 2: Gracefully বন্ধ করার চেষ্টা kill 1234 # Step 3: এখনো চলছে কিনা দেখো ps aux | grep python3 # Step 4: এখনো চলছে? Force kill kill -9 1234

pkill

PID মনে না রেখে নাম দিয়ে kill করো।

Terminal
# নাম দিয়ে kill (SIGTERM) pkill nginx pkill python3 # Force kill pkill -9 firefox # নির্দিষ্ট user-এর process kill করো pkill -u omar python3 # Exact name match (partial না) # "nginx" match করবে কিন্তু "nginx-worker" করবে না pkill -x nginx

pkill একসাথে সব matching process kill করে। যেমন pkill python3 দিলে সব python3 process বন্ধ হবে — শুধু একটা নয়। সাবধানে ব্যবহার করো।

killall

একই নামের সব process একসাথে বন্ধ করো।

Terminal
# সব nginx process বন্ধ করো killall nginx # Force killall -9 chrome

pkill এবং killall প্রায় একই কাজ করে — pkill regex সাপোর্ট করে এবং বেশি flexible।

Keyboard Shortcuts

Terminal-এ চলমান foreground process দ্রুত control করো:

ShortcutSignalকাজ
Ctrl+CSIGINT (2)Process cancel করো — সবচেয়ে বেশি ব্যবহার
Ctrl+ZSIGTSTP (20)Process pause করো — পরে fg বা bg দিয়ে চালু করো
Ctrl+\SIGQUIT (3)Process বন্ধ + core dump তৈরি করো

Ctrl+C vs Ctrl+Z পার্থক্য:

Ctrl+C → process বন্ধ হয়ে যায়, আর নেই Ctrl+Z → process pause হয়, background-এ আটকে থাকে তারপর: fg দিয়ে ফেরত আনো, বা bg দিয়ে background-এ চালাও

top থেকে Kill

Terminal
# top চালাও top # k চাপো # "PID to signal/kill:" → PID দাও # "Signal number [15]:" → Enter (SIGTERM) বা 9 (SIGKILL)

Practice

Terminal
# 1. Background-এ একটা test process চালাও sleep 500 & # [1] 8888 # 2. PID দেখো jobs # job number দেখায় pgrep sleep # শুধু PID দেখায় # 3. Gracefully kill করো kill 8888 # 4. আর নেই confirm করো ps aux | grep sleep

CyberSec Note

Process kill — attack এবং defense:

Anti-forensics — attacker যা করে:

Terminal
# Security monitoring daemon বন্ধ করো # auditd = Linux-এর security audit logging service pkill -9 auditd # log লেখা বন্ধ হয়ে যাবে # ossec = intrusion detection system pkill -9 ossec

এই কাজ করলে attacker-এর কার্যকলাপ log-এ থাকে না।

Incident Response — defender যা করে:

Terminal
# Suspicious process pattern খোঁজো ps aux | grep -E "nc |ncat|netcat|bash -i" # Reverse shell বন্ধ করো pkill -9 nc # একটি নির্দিষ্ট command pattern kill করো kill -9 $(pgrep -f "bash -i") # ^-- pgrep -f = full command line match করে

Config reload — restart না করে:

Terminal
# nginx config পরিবর্তন করার পর # restart = downtime, SIGHUP = no downtime kill -HUP $(pgrep nginx) # অথবা systemctl দিয়ে sudo systemctl reload nginx

CTF-এ stuck shell বা listener বন্ধ করতে kill -9 সবচেয়ে বেশি লাগে।

Quick Check

  • SIGTERM আর SIGKILL এর mechanical পার্থক্য কী? কোনটা process ignore করতে পারে?
  • kill 1234 আর kill -9 1234 — কোনটা কখন ব্যবহার করবে?
  • pkill nginx আর kill $(pgrep nginx) — একই কাজ?
  • Ctrl+C আর Ctrl+Z কীভাবে আলাদা?
  • kill -HUP কেন service restart না করে config reload করার জন্য ব্যবহার হয়?

পরবর্তী → Managing Services

Search Keywords: linux kill process bangla, kill -9 SIGKILL SIGTERM, pkill killall, linux signals Bengali, killing process linux, ctrl+c ctrl+z difference, process control linux

Last updated on