Ravindra BagaleCourses & study guides English

Linux Signals आणि kill Command: kill, pkill, killall, SIGTERM vs SIGKILL आणि trap

Signal म्हणजे kernel process ला देणारा छोटा message: कृपया थांब, आत्ताच थांब, config reload कर, pause, continue. kill, pkill आणि killall signals पाठवतात; Ctrl+C आणि Ctrl+Z keyboard वरून; timeout वेळ संपल्यावर एक पाठवतो; आणि trap तुमच्या scripts ना त्यांना react करू देतो. Zombies आणि D-state processes का मरत नाहीत तेही शिकाल.

या chapter मध्ये तुम्ही काय शिकाल

  • Signals list आणि नेहमीचे ओळखा
  • PID आणि signal सह kill
  • SIGKILL आधी SIGTERM निवडा
  • Reload साठी SIGHUP, pause साठी SIGSTOP/SIGCONT
  • pkill, killall आणि timeout
  • bash मधे trap handlers; zombies आणि D-state

1. रोजचं उदाहरण: PMT bus conductor

हे का लागतं?

पुण्याच्या PMT bus वर conductor कडे काही ठरलेले signals. एक bell: पुढचा stop, तयार व्हा (नम्र). दोन जलद bells: आत्ताच थांब. लांब शिट्टी: driver, इथे थांब (pause). दुसरी शिट्टी: परत चल (continue). Route बदलला तर depot radio करतो: 'नवी route sheet घ्या', bus न थांबवता. Passenger झोपला असेल आणि उत्तर देत नसेल, तर bus पूल ओलांडत असताना conductor त्याला उतरवू शकत नाही; थांबतो.

हे काय आहे?

एक bell = SIGTERM (15, नम्र stop, cleanup करू शकतो). दोन जलद bells = SIGKILL (9, नाकारता येत नाही). लांब शिट्टी = SIGSTOP. परत चल = SIGCONT. नवी route sheet = SIGHUP (config reload). पुलावरचा passenger = D-state: SIGKILL पण IO संपेपर्यंत थांबतो.

कसं करायचं (step by step)

Signal कसा handle होतोतुम्ही (किंवा kernel) PID ला signal पाठवताKernel त्या process वर pending mark करतोProcess कडे handler? स्वतःचा code (cleanup, reload)Ignore? काही नाही (KILL आणि STOP साठी शक्य नाही)Default? सहसा terminate, कधी core dump, stop किंवा ignoreParent ला exit status (shells मधे 128 + signal number)
Exit code 137 = 128+9 (killed), 143 = 128+15 (terminated), 130 = 128+2 (Ctrl+C).

2. kill -l: signals ची list

हे का लागतं?

योग्य signal निवडायला आणि 137 सारखे exit codes वाचायला signal नावं आणि numbers माहीत हवेत.

हे काय आहे?

kill -l सगळे signals. kill -l 9 number चं नाव. नावं (TERM, SIGTERM) किंवा numbers (15) वापरू शकता. नेहमीचे खाली; non-x86 वर numbers बदलू शकतात, म्हणून नावं safe.

SignalNo.Defaultनेहमीचा उपयोग
SIGHUP1TerminateConfig reload / terminal बंद
SIGINT2TerminateCtrl+C
SIGQUIT3Core dumpCtrl+\
SIGKILL9Terminate, catch नाहीशेवटचा उपाय
SIGTERM15Terminateनम्र stop (kill चा default)
SIGSTOP19Stop, catch नाहीPause
SIGTSTP20StopCtrl+Z
SIGCONT18ContinueResume
SIGUSR1/210/12TerminateApp ठरवतो (log reopen, stats dump)

कसं करायचं (step by step)

  1. List.
kill -l | head -2

Output:

 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1

याचा अर्थ: Linux वर एकूण 64.

  1. Number ते नाव.
kill -l 15; kill -l 137

Output:

TERM
KILL

याचा अर्थ: kill -l exit codes पण समजतो (137-128=9).

3. kill PID: signal पाठवा

हे का लागतं?

एका नेमक्या process ला PID ने थांबवायला किंवा control करायला.

हे काय आहे?

kill PID SIGTERM पाठवतो. kill -SIGNAL PID किंवा kill -s SIGNAL PID दुसरा. एकदम अनेक PIDs चालतात. kill %1 shell job ला. kill -0 PID काहीच पाठवत नाही, फक्त PID आहे का आणि signal करू शकता का ते तपासतो. root नसाल तर फक्त स्वतःचे processes.

कसं करायचं (step by step)

  1. नम्र stop.
kill 9601; sleep 1; ps -p 9601 || echo gone

Output:

  PID TTY  TIME CMD
gone

याचा अर्थ: Default SIGTERM चाललं.

  1. Signal नावाने.
kill -s TERM 9702 9703

Output:

(no output)

याचा अर्थ: एकदम दोन processes.

  1. जिवंत आहे का?
kill -0 2201 && echo alive

Output:

alive

याचा अर्थ: Scripts आणि pid-file checks मधे.

  1. दुसऱ्याचा process.
kill 1420

Output:

bash: kill: (1420) - Operation not permitted

याचा अर्थ: mysql चा; sudo.

4. SIGTERM vs SIGKILL

हे का लागतं?

आधी kill -9 ही सवय सामान्य आणि त्याने corrupt files, data loss आणि उरलेले locks होतात.

हे काय आहे?

SIGTERM (15) program ला संपवायला सांगतो: data save, connections बंद, pid files काढा. SIGKILL (9) kernel handle करतो: process लगेच काढला जातो, cleanup नाही. क्रम: TERM, 10-30 s थांबा, गरज असेल तरच KILL. systemd stop ला हेच करतो (TimeoutStopSec).

SIGTERM 15SIGKILL 9
Can be caughtहोनाही
Cleanupहोनाही
Useनेहमी आधीTERM fail झाला तरच

कसं करायचं (step by step)

  1. आधी विचारा, थांबा, मग force.
kill 7710; for i in $(seq 10); do kill -0 7710 2>/dev/null || break; sleep 1; done; kill -0 7710 2>/dev/null && kill -9 7710

Output:

(no output)

याचा अर्थ: 10 second मर्यादेसह graceful stop.

  1. Parent ला KILL कसा दिसतो.
sleep 100 & kill -9 $!; wait $!; echo $?

Output:

[1]+  Killed    sleep 100
137

याचा अर्थ: 137 = 128 + 9.

  1. OOM killer पण SIGKILL.
sudo journalctl -k | grep -i 'killed process' | tail -1

Output:

Out of memory: Killed process 8812 (python) total-vm:9.1G

याचा अर्थ: Docker/K8s मधे 137 बहुतेक OOM.

5. SIGHUP: restart शिवाय reload

हे का लागतं?

अनेक daemons SIGHUP ला config परत वाचतात, म्हणून downtime शिवाय बदल लागू.

हे काय आहे?

Daemons (nginx, sshd, rsyslog, haproxy) साठी SIGHUP म्हणजे reload. साध्या terminal program साठी 'तुमचं terminal बंद' आणि तो exit होतो (म्हणूनच nohup). systemctl reload सहसा SIGHUP किंवा ExecReload. नेहमी आधी config test (nginx -t, sshd -t).

कसं करायचं (step by step)

  1. nginx test आणि reload.
sudo nginx -t && sudo kill -HUP $(cat /run/nginx.pid)

Output:

nginx: configuration file /etc/nginx/nginx.conf test is successful

याचा अर्थ: Workers gracefully restart; connections चालू.

  1. systemd मार्ग.
sudo systemctl reload sshd && systemctl status sshd --no-pager | grep -i reload

Output:

Oct 25 12:01:10 web1 systemd[1]: Reloaded OpenSSH server daemon.

याचा अर्थ: तोच परिणाम, systemd log.

  1. rsyslog ला logs reopen.
sudo pkill -HUP rsyslogd

Output:

(no output)

याचा अर्थ: Manual log rotation नंतर.

6. SIGINT, SIGSTOP, SIGCONT आणि keyboard signals

हे का लागतं?

Peak मधे heavy job काही मिनिटं pause, मग continue; किंवा script स्वच्छ interrupt.

हे काय आहे?

Ctrl+C SIGINT, Ctrl+Z SIGTSTP, Ctrl+\ SIGQUIT foreground job ला. SIGSTOP कोणताही process pause, catch नाही. SIGCONT परत चालू (bg/fg पण CONT पाठवतात). Stopped process ps मधे T.

कसं करायचं (step by step)

  1. Backup pause.
sudo kill -STOP 9500 && ps -o pid,stat,cmd -p 9500

Output:

  PID STAT CMD
 9500 T    tar czf /backup/www.tgz /srv/www

याचा अर्थ: T = stopped, CPU नाही.

  1. परत चालू.
sudo kill -CONT 9500 && ps -o stat= -p 9500

Output:

R

याचा अर्थ: जिथे होतं तिथून.

  1. Script मधून interrupt.
kill -INT 9810

Output:

(the program prints ^C-like cleanup)

याचा अर्थ: त्याच्या terminal मधे Ctrl+C सारखं.

7. pkill: नाव किंवा pattern ने signal

हे का लागतं?

अनेक workers असतील किंवा PIDs माहीत नसतील तर नावाने पाठवणं जलद.

हे काय आहे?

pkill pgrep सारखंच matching: NAME pattern, -f पूर्ण command line, -u USER, -x exact, -t TTY, -n newest, -o oldest. Default signal TERM; -HUP, -9 वगैरे. आधी तेच options घेऊन pgrep -a चालवा म्हणजे काय match होईल ते दिसेल.

कसं करायचं (step by step)

  1. Preview, मग stop.
pgrep -af 'celery worker'; pkill -f 'celery worker'

Output:

5101 celery worker -A shop
5102 celery worker -A shop

याचा अर्थ: दोन्ही workers ना TERM.

  1. User चे सगळे processes.
sudo pkill -u intern1

Output:

(no output)

याचा अर्थ: जाणाऱ्या user चे sessions बंद.

  1. Terminal session बाहेर.
who; sudo pkill -KILL -t pts/3

Output:

guest pts/3 2026-10-25 11:40 (203.0.113.9)

याचा अर्थ: त्या user ला logout.

  1. सैल patterns चा धोका.
pgrep -l ssh

Output:

800 sshd
8700 sshd
9050 ssh-agent

याचा अर्थ: pkill ssh sshd ला पण. -x वापरा.

8. killall: exact program नावाने signal

हे का लागतं?

एका program च्या सगळ्या copies exact नावाने थांबवा.

हे काय आहे?

killall NAME exact process नाव match (pattern नाही). -s SIGNAL, -i प्रत्येकाला विचारतो, -u USER, -w मरेपर्यंत थांबतो, -o/-y वेळेपेक्षा जुने/नवे. psmisc ने install. Solaris वर killall सगळं मारतो, म्हणून इतर Unix वर जपून.

कसं करायचं (step by step)

  1. सगळ्या copies थांबवा आणि थांबा.
killall -w php-fpm

Output:

(returns when all are gone)

याचा अर्थ: -w restart आधी scripts मधे.

  1. प्रत्येकाआधी विचारा.
killall -i python3

Output:

Kill python3(8812) ? (y/N) y
Kill python3(8820) ? (y/N) n

याचा अर्थ: Safe interactive वापर.

  1. फक्त जुने processes.
killall -o 2h -u ravi sleep

Output:

(no output)

याचा अर्थ: ravi चे 2 तासांपेक्षा जुने sleeps.

9. timeout: command किती वेळ चालेल त्याची मर्यादा

हे का लागतं?

अडकलेला curl, backup किंवा test cron job किंवा CI pipeline कायमचा block करू नये.

हे काय आहे?

timeout 30s CMD 30 seconds नंतर TERM. -s KILL दुसरा signal. -k 5s पहिल्या signal नंतर 5 s ने जिवंत असेल तर KILL. Exit code 124 म्हणजे timed out. Units: s, m, h, d.

कसं करायचं (step by step)

  1. Health check मर्यादा.
timeout 5s curl -s https://api.example.com/health; echo $?

Output:

124

याचा अर्थ: 124 = timed out; API slow.

  1. TERM, मग KILL.
timeout -k 10s 1h ./nightly-report.sh

Output:

(no output)

याचा अर्थ: 1 तासापर्यंत, मग TERM, 10 s नंतर KILL.

  1. cron मधे.
*/5 * * * * timeout 4m /usr/local/bin/sync.sh

Output:

(crontab line)

याचा अर्थ: पुढचा run मागच्याशी overlap नाही.

10. trap: bash scripts मधे signals handle

हे का लागतं?

Script थांबवली (Ctrl+C, systemd कडून TERM) की गोंधळ न ठेवता temp files आणि locks काढाव्यात.

हे काय आहे?

trap 'COMMANDS' SIGNALS signal आल्यावर COMMANDS चालवतो. EXIT कोणत्याही exit ला, ERR fail होणाऱ्या command ला. trap '' INT Ctrl+C ignore. trap - INT default परत. trap -p सध्याचे traps. KILL आणि STOP trap होत नाहीत.

कसं करायचं (step by step)

  1. Exit ला temp files साफ.
cat clean.sh
#!/bin/bash
tmp=$(mktemp)
trap 'rm -f "$tmp"; echo cleaned' EXIT
echo working > "$tmp"; sleep 30

Output:

(press Ctrl+C)
^Ccleaned

याचा अर्थ: Normal end आणि Ctrl+C दोन्हीला.

  1. TERM ला graceful stop.
trap 'echo stopping; kill $child; wait $child; exit 0' TERM; ./worker & child=$!; wait

Output:

(after kill -TERM of the script) stopping

याचा अर्थ: Child ला stop देतो आणि थांबतो.

  1. HUP ला reload.
trap 'source /etc/myapp.conf; echo reloaded' HUP

Output:

(after kill -HUP) reloaded

याचा अर्थ: Script daemon सारखी.

  1. Active traps.
trap -p

Output:

trap -- 'rm -f "$tmp"; echo cleaned' EXIT

याचा अर्थ: Debug मधे उपयोगी.

11. Zombies आणि D-state: न मरणारे processes

हे का लागतं?

kill -9 त्यांना काढत नाही, आणि लोकांचे तास जातात. खरा fix माहीत हवा.

हे काय आहे?

Zombie (Z) आधीच exit झाला; फक्त त्याचा exit record parent ची वाट बघतो. Parent fix: SIGCHLD पाठवा किंवा restart; parent मेला तर systemd दत्तक घेऊन reap करतो. D-state process kernel मधे IO ची वाट (मेलेलं NFS, failing disk); IO परत येईपर्यंत signals थांबतात. Storage fix, NFS साठी umount -f/-l, किंवा reboot.

कसं करायचं (step by step)

  1. Zombies आणि parents.
ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/'

Output:

 9901  9900 Z    [worker] <defunct>

याचा अर्थ: PPID 9900 ने reap करायला हवं.

  1. Zombie वर kill -9 काही करत नाही.
kill -9 9901; ps -o stat= -p 9901

Output:

Z

याचा अर्थ: तो आधीच मेलेला.

  1. Parent ला nudge किंवा restart.
kill -CHLD 9900; sleep 1; ps -o stat= -p 9901 || echo reaped

Output:

reaped

याचा अर्थ: नाहीतर parent service restart.

  1. मेलेल्या NFS मुळे D-state.
ps -eo pid,stat,wchan:20,cmd | awk '$2 ~ /D/'

Output:

7001 D    nfs_wait_bit_killable ls /mnt/nfs

याचा अर्थ: NFS ची वाट; mount fix.

12. अनेक industries मधली खरी उदाहरणं

हे का लागतं?

तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.

हे काय आहे?

प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.

कसं करायचं (step by step)

Team आणि शहरते कसं वापरतातCommand
Rahul, payments, PuneDeploy scripts मधे graceful TERM मग KILLkill $PID; sleep 15; kill -9 $PID
Elena, CDN, MadridCert renewal नंतर HUP ने nginx reloadnginx -t && kill -HUP $(cat /run/nginx.pid)
Joseph, ISP NOC, Nairobitimeout ने monitoring probestimeout 10s ping -c3 10.0.0.1
Hiro, robotics, NagoyaControl scripts मधे trap ने lock files साफtrap 'rm -f /run/arm.lock' EXIT
Ananya, data team, BengaluruBusiness hours मधे ETL pausepkill -STOP -f etl.py
Lucas, hosting, Sao PauloIdle SSH users logoutpkill -KILL -t pts/5

13. नेहमीच्या errors आणि त्यांचे fixes

हे का लागतं?

हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.

हे काय आहे?

आधी नेमका message वाचा. मग खालच्या row शी जुळवा.

कसं करायचं (step by step)

दिसणारा errorका होतंFix कसा करायचा
bash: kill: (1420) - Operation not permittedतुमचा process नाहीsudo.
sudo kill 1420
bash: kill: (99999) - No such processPID आधीच गेला किंवा typopgrep ने परत check.
pgrep -a myapp
Process ignores kill (SIGTERM)App TERM हळू handle करतो किंवा अडकलाथांबा, मग KILL.
kill -9 PID
kill -9 does not remove <defunct>तो zombieParent fix किंवा restart.
ps -o ppid= -p PID
kill -9 has no effect, STAT DKernel IO मधे अडकलाStorage/NFS fix किंवा reboot.
ps -eo pid,stat,wchan:20,cmd
Container exited with code 137SIGKILL, बहुतेक OOM killerMemory limits आणि kernel log.
journalctl -k | grep -i oom
Script exits with 143 under systemdStop ला SIGTERM; trap नसेलtrap किंवा SuccessExitStatus=143.
systemctl show -p ExecMainStatus app
pkill killed the wrong processesसैल pattern ने जास्त matchpgrep -a ने preview आणि -x किंवा -f जपून.
pgrep -ax nginx
killall: command not foundpsmisc install नाहीpsmisc install किंवा pkill.
sudo dnf install -y psmisc
timeout: exit 124 every runCommand limit पेक्षा slowका ते शोधा किंवा limit वाढवा.
time ./job.sh

14. Troubleshooting step by step

हे का लागतं?

Process थांबत नसेल: ओळखा, TERM, state तपासा, मग KILL, आणि तरी राहिला तर zombie किंवा D-state बघा.

हे काय आहे?

वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.

कसं करायचं (step by step)

  1. नेमका process.
pgrep -a myapp
  1. थांबायला सांगा.
kill PID
  1. थांबा, state तपासा.
sleep 10; ps -o pid,stat,cmd -p PID
  1. गरज असेल तरच force.
kill -9 PID
  1. Zombie? Parent.
ps -o ppid= -p PID
  1. D-state? Storage.
dmesg -T | tail -20

15. Lab 1: Graceful vs forced stop

हे का लागतं?

TERM ला cleanup करणारी छोटी script लिहा, मग TERM आणि KILL compare.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. Script बनवा.
cat > ~/svc.sh <<'X'
#!/bin/bash
touch /tmp/svc.lock
trap 'rm -f /tmp/svc.lock; echo clean exit; exit 0' TERM INT
while true; do sleep 1; done
X
chmod +x ~/svc.sh

Output:

(no output)
  1. चालवा आणि TERM ने थांबवा.
~/svc.sh & sleep 1; kill $!; wait $!; echo code=$?; ls /tmp/svc.lock

Output:

clean exit
code=0
ls: cannot access '/tmp/svc.lock': No such file or directory
  1. चालवा आणि KILL ने थांबवा.
~/svc.sh & sleep 1; kill -9 $!; wait $!; echo code=$?; ls /tmp/svc.lock

Output:

code=137
/tmp/svc.lock
  1. फरक बघा.
echo 'KILL left the lock file behind'

Output:

KILL left the lock file behind
  1. साफ.
rm -f /tmp/svc.lock ~/svc.sh

Output:

(no output)

16. Lab 2: Pause, resume, reload आणि time-limit

हे का लागतं?

STOP/CONT, preview सह pkill, आणि timeout.

हे काय आहे?

पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).

कसं करायचं (step by step)

  1. दोन workers.
(sleep 500 &) ; (sleep 501 &) ; pgrep -a sleep

Output:

9950 sleep 500
9951 sleep 501
  1. एक pause आणि resume.
kill -STOP 9950; ps -o pid,stat -p 9950; kill -CONT 9950; ps -o stat= -p 9950

Output:

  PID STAT
 9950 T
S
  1. Preview मग pkill.
pgrep -af 'sleep 50'; pkill -f 'sleep 50'; pgrep -c sleep

Output:

9950 sleep 500
9951 sleep 501
0
  1. Command ला time-limit.
timeout 2s sleep 10; echo $?

Output:

124
  1. Daemon safely reload.
sudo sshd -t && sudo systemctl reload sshd && echo reloaded

Output:

reloaded

Ravindra Bagale's Tip

Make 'kill, wait, then kill -9' a habit, never the other way round. And before any pkill, run the same pattern with pgrep -a to see exactly what you are about to stop.

17. नेहमी विचारले जाणारे प्रश्न

प्र. kill default कोणता signal?

SIGTERM (15).

प्र. आधी kill -9 का टाळावं?

Program data save किंवा cleanup करू शकत नाही, corrupt files आणि stale locks.

प्र. pkill की killall?

pkill pgrep सारखे patterns; killall exact नावं. दोन्ही ठीक; आधी preview.

प्र. Exit code 130?

Ctrl+C ने थांबलं (128 + 2).

प्र. SIGKILL trap करता येतो का?

नाही. KILL आणि STOP catch किंवा ignore होत नाहीत.

प्र. SIGHUP नेहमी reload?

तसं लिहिलेल्या programs साठीच (बहुतेक daemons). इतरांना संपवतो.

प्र. पूर्ण process group कसा kill?

kill -TERM -PGID (negative number), किंवा services साठी systemctl stop.

प्र. Container लवकर का थांबत नाही?

Container मधला PID 1 handle केल्याशिवाय TERM ignore करतो; entrypoints मधे exec, tini, किंवा trap.

18. मुलाखत प्रश्न आणि उत्तरं

Beginner level

प्र. Signal म्हणजे?

Kernel कडून process ला छोटा message, जसं stop, pause किंवा reload.

प्र. SIGTERM vs SIGKILL?

TERM नम्रपणे विचारतो आणि handle होतो; KILL लगेच संपवतो, catch नाही.

प्र. Ctrl+C काय पाठवतो?

SIGINT.

प्र. Signals कसे list?

kill -l.

Mid level level

प्र. Downtime शिवाय nginx config reload कसा?

nginx -t, मग systemctl reload nginx किंवा master PID ला kill -HUP.

प्र. Exit code 137?

SIGKILL ने मेला (128+9), बहुतेक OOM.

प्र. Command 30 seconds पुरता कसा?

timeout 30s CMD; timed out असेल तर exit 124.

प्र. Script interrupt झाल्यावर temp files कशा साफ?

trap 'rm -f "$tmp"' EXIT INT TERM.

Senior level

प्र. Process D state मधे, kill -9 ignore. Explain.

Kernel IO call मधे block; परत आल्यावरच signals. Device किंवा NFS fix (umount -f/-l), किंवा reboot.

प्र. Zombies वाढतायत. मूळ कारण आणि fix?

Parent wait() call करत नाही. Code fix (SIGCHLD handle), parent restart, किंवा containers मधे tini सारखा init.

प्र. systemd service कशी थांबवतो?

Cgroup ला KillSignal (TERM), TimeoutStopSec थांबतो, मग SIGKILL; KillMode कोणते processes ते ठरवतो.

प्र. Docker entrypoint script मधे exec का?

App PID 1 होतो आणि shell गिळण्याऐवजी SIGTERM थेट मिळतो.

घरी करून बघा

  1. दर second 'tick' print करणारी, Ctrl+C किंवा TERM ला 'bye' आणि HUP ला 'reloaded' print करणारी script लिहा. kill ने तिन्ही test करा.
  2. 'sleep 100' चालवा आणि TERM, KILL आणि Ctrl+C ने थांबवल्यावर exit code काय ते शोधा. प्रत्येक number समजवा.

सराव Tasks

या scenario बद्दल

Ahmednagar Sugar Co-op हा अहिल्यानगर मधला साखर सहकारी व्यवसाय आहे. Balasaheb Pawar त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 17

सोपं Signal चा number

का: नावं ओळखा.

काय करायचं: TERM signal चा number त्याच्या नावाने दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं नम्र stop

का: App ला cleanup करू द्या.

काय करायचं: PID 5520 ला default terminate signal.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं नावाने सगळ्या copies

का: gunicorn स्वच्छ restart.

काय करायचं: gunicorn नावाचे सगळे processes थांबवा आणि जाईपर्यंत थांबा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Command मर्यादा

का: Health check अडकतो.

काय करायचं: 5 second मर्यादेसह curl -s https://example.com.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Number चं नाव

का: Exit code 137 दिसला.

काय करायचं: Number 2 चं signal नाव.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Force kill

का: 30 s नंतरही TERM चाललं नाही.

काय करायचं: PID 5520 ला SIGKILL.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम जिवंत आहे का?

का: pid file check.

काय करायचं: खरा signal न पाठवता PID 3307 आहे का ते.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम PID ने nginx reload

का: BIZ चं नवं certificate.

काय करायचं: PID 980 (nginx master) ला SIGHUP.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Process pause

का: Peak hour; ETL pause.

काय करायचं: Catch न होणाऱ्या signal ने PID 9611 pause.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Process resume

का: Peak संपला.

काय करायचं: Pause केलेला PID 9611 resume.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम पूर्ण command ने stop

का: Celery workers चे PIDs ठरलेले नाहीत.

काय करायचं: पूर्ण command line 'rq worker' match होणाऱ्या प्रत्येक process ला TERM.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम User चे processes बंद

का: Intern BIZ सोडतोय.

काय करायचं: trainee7 user च्या सगळ्या processes ला TERM.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Exit ला cleanup

का: उरलेल्या temp files.

काय करायचं: Bash script मधे EXIT ला rm -f /tmp/job.lock चालवणारा trap.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Terminal बाहेर

का: pts/5 वर अनोळखी user.

काय करायचं: pts/5 terminal वरच्या सगळ्याला KILL.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड TERM मग KILL

का: Nightly job कधी अडकू नये.

काय करायचं: ./report.sh ला 1h मर्यादा, आणि पहिल्या signal नंतर 10s ने जिवंत असेल तर KILL.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड TERM ignore

का: Critical step interrupt होऊ नये.

काय करायचं: Script ला SIGTERM ignore करायला लावा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

अवघड Zombies शोधा

का: Defunct entries वाढतायत.

काय करायचं: सगळ्या processes चे stat, pid, ppid, cmd list, मग awk ने field 1 मधे Z असलेल्या rows.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

थोडक्यात सांगायचं तर

  1. kill -l list; numbers पेक्षा नावं safe.
  2. kill TERM पाठवतो; -9 फक्त शेवटी.
  3. HUP daemons reload; STOP/CONT pause आणि resume.
  4. नावाने pkill/killall; pgrep -a ने preview.
  5. timeout वेळ मर्यादा (exit 124); trap cleanup.
  6. Zombies: parent fix. D-state: IO fix.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

Process बरोबर थांबवा. Apps ना आधी cleanup. kill default TERM पाठवतो. -9 फक्त शेवटी. आधी नम्र मग force.
उजळणी card: Process बरोबर थांबवा · PNG download करा · Card page उघडा
trap cleanup. Scripts ने नेहमी cleanup. trap signal वर code चालवतो. EXIT normal आणि error दोन्ही. Lock file काढा.
उजळणी card: trap cleanup · PNG download करा · Card page उघडा
kill vs pkill. माहीत असलेला एक PID. / Pattern match होणारे processes.
तुलना: kill vs pkill · PNG download करा · Card page उघडा
pkill vs killall. Pattern, user, terminal. / नेमकं process नाव.
तुलना: pkill vs killall · PNG download करा · Card page उघडा
TERM vs KILL?. TERM विचारतो, app cleanup करू शकतं. KILL catch होत नाही. थांबून मग force.
मुलाखत card: TERM vs KILL? · PNG download करा · Card page उघडा
Exit code 137?. 128 अधिक 9 म्हणजे SIGKILL. बहुतेक OOM killer. Signal चं नाव.
मुलाखत card: Exit code 137? · PNG download करा · Card page उघडा
nginx ला HUP का?. अनेक daemons HUP वर reload. नव्या config ला downtime नाही. PID ने reload.
मुलाखत card: nginx ला HUP का? · PNG download करा · Card page उघडा
Zombie kill करता येतो?. तो आधीच मेलेला आहे. Parent fix किंवा restart. Parent शोधा.
मुलाखत card: Zombie kill करता येतो? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.