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)
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.
| Signal | No. | Default | नेहमीचा उपयोग |
|---|---|---|---|
| SIGHUP | 1 | Terminate | Config reload / terminal बंद |
| SIGINT | 2 | Terminate | Ctrl+C |
| SIGQUIT | 3 | Core dump | Ctrl+\ |
| SIGKILL | 9 | Terminate, catch नाही | शेवटचा उपाय |
| SIGTERM | 15 | Terminate | नम्र stop (kill चा default) |
| SIGSTOP | 19 | Stop, catch नाही | Pause |
| SIGTSTP | 20 | Stop | Ctrl+Z |
| SIGCONT | 18 | Continue | Resume |
| SIGUSR1/2 | 10/12 | Terminate | App ठरवतो (log reopen, stats dump) |
कसं करायचं (step by step)
- 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.
- 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)
- नम्र stop.
kill 9601; sleep 1; ps -p 9601 || echo gone
Output:
PID TTY TIME CMD
gone
याचा अर्थ: Default SIGTERM चाललं.
- Signal नावाने.
kill -s TERM 9702 9703
Output:
(no output)
याचा अर्थ: एकदम दोन processes.
- जिवंत आहे का?
kill -0 2201 && echo alive
Output:
alive
याचा अर्थ: Scripts आणि pid-file checks मधे.
- दुसऱ्याचा 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 15 | SIGKILL 9 | |
|---|---|---|
| Can be caught | हो | नाही |
| Cleanup | हो | नाही |
| Use | नेहमी आधी | TERM fail झाला तरच |
कसं करायचं (step by step)
- आधी विचारा, थांबा, मग 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.
- Parent ला KILL कसा दिसतो.
sleep 100 & kill -9 $!; wait $!; echo $?
Output:
[1]+ Killed sleep 100
137
याचा अर्थ: 137 = 128 + 9.
- 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)
- 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 चालू.
- 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.
- 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)
- 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 नाही.
- परत चालू.
sudo kill -CONT 9500 && ps -o stat= -p 9500
Output:
R
याचा अर्थ: जिथे होतं तिथून.
- 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)
- Preview, मग stop.
pgrep -af 'celery worker'; pkill -f 'celery worker'
Output:
5101 celery worker -A shop
5102 celery worker -A shop
याचा अर्थ: दोन्ही workers ना TERM.
- User चे सगळे processes.
sudo pkill -u intern1
Output:
(no output)
याचा अर्थ: जाणाऱ्या user चे sessions बंद.
- Terminal session बाहेर.
who; sudo pkill -KILL -t pts/3
Output:
guest pts/3 2026-10-25 11:40 (203.0.113.9)
याचा अर्थ: त्या user ला logout.
- सैल 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)
- सगळ्या copies थांबवा आणि थांबा.
killall -w php-fpm
Output:
(returns when all are gone)
याचा अर्थ: -w restart आधी scripts मधे.
- प्रत्येकाआधी विचारा.
killall -i python3
Output:
Kill python3(8812) ? (y/N) y
Kill python3(8820) ? (y/N) n
याचा अर्थ: Safe interactive वापर.
- फक्त जुने 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)
- Health check मर्यादा.
timeout 5s curl -s https://api.example.com/health; echo $?
Output:
124
याचा अर्थ: 124 = timed out; API slow.
- TERM, मग KILL.
timeout -k 10s 1h ./nightly-report.sh
Output:
(no output)
याचा अर्थ: 1 तासापर्यंत, मग TERM, 10 s नंतर KILL.
- 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)
- 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 दोन्हीला.
- 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 देतो आणि थांबतो.
- HUP ला reload.
trap 'source /etc/myapp.conf; echo reloaded' HUP
Output:
(after kill -HUP) reloaded
याचा अर्थ: Script daemon सारखी.
- 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)
- Zombies आणि parents.
ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/'
Output:
9901 9900 Z [worker] <defunct>
याचा अर्थ: PPID 9900 ने reap करायला हवं.
- Zombie वर kill -9 काही करत नाही.
kill -9 9901; ps -o stat= -p 9901
Output:
Z
याचा अर्थ: तो आधीच मेलेला.
- Parent ला nudge किंवा restart.
kill -CHLD 9900; sleep 1; ps -o stat= -p 9901 || echo reaped
Output:
reaped
याचा अर्थ: नाहीतर parent service restart.
- मेलेल्या 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, Pune | Deploy scripts मधे graceful TERM मग KILL | kill $PID; sleep 15; kill -9 $PID |
| Elena, CDN, Madrid | Cert renewal नंतर HUP ने nginx reload | nginx -t && kill -HUP $(cat /run/nginx.pid) |
| Joseph, ISP NOC, Nairobi | timeout ने monitoring probes | timeout 10s ping -c3 10.0.0.1 |
| Hiro, robotics, Nagoya | Control scripts मधे trap ने lock files साफ | trap 'rm -f /run/arm.lock' EXIT |
| Ananya, data team, Bengaluru | Business hours मधे ETL pause | pkill -STOP -f etl.py |
| Lucas, hosting, Sao Paulo | Idle SSH users logout | pkill -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 process | PID आधीच गेला किंवा typo | pgrep ने परत check.pgrep -a myapp |
Process ignores kill (SIGTERM) | App TERM हळू handle करतो किंवा अडकला | थांबा, मग KILL.kill -9 PID |
kill -9 does not remove <defunct> | तो zombie | Parent fix किंवा restart.ps -o ppid= -p PID |
kill -9 has no effect, STAT D | Kernel IO मधे अडकला | Storage/NFS fix किंवा reboot.ps -eo pid,stat,wchan:20,cmd |
Container exited with code 137 | SIGKILL, बहुतेक OOM killer | Memory limits आणि kernel log.journalctl -k | grep -i oom |
Script exits with 143 under systemd | Stop ला SIGTERM; trap नसेल | trap किंवा SuccessExitStatus=143.systemctl show -p ExecMainStatus app |
pkill killed the wrong processes | सैल pattern ने जास्त match | pgrep -a ने preview आणि -x किंवा -f जपून.pgrep -ax nginx |
killall: command not found | psmisc install नाही | psmisc install किंवा pkill.sudo dnf install -y psmisc |
timeout: exit 124 every run | Command limit पेक्षा slow | का ते शोधा किंवा limit वाढवा.time ./job.sh |
14. Troubleshooting step by step
हे का लागतं?
Process थांबत नसेल: ओळखा, TERM, state तपासा, मग KILL, आणि तरी राहिला तर zombie किंवा D-state बघा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- नेमका process.
pgrep -a myapp
- थांबायला सांगा.
kill PID
- थांबा, state तपासा.
sleep 10; ps -o pid,stat,cmd -p PID
- गरज असेल तरच force.
kill -9 PID
- Zombie? Parent.
ps -o ppid= -p PID
- 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)
- 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)
- चालवा आणि 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
- चालवा आणि KILL ने थांबवा.
~/svc.sh & sleep 1; kill -9 $!; wait $!; echo code=$?; ls /tmp/svc.lock
Output:
code=137
/tmp/svc.lock
- फरक बघा.
echo 'KILL left the lock file behind'
Output:
KILL left the lock file behind
- साफ.
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)
- दोन workers.
(sleep 500 &) ; (sleep 501 &) ; pgrep -a sleep
Output:
9950 sleep 500
9951 sleep 501
- एक 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
- Preview मग pkill.
pgrep -af 'sleep 50'; pkill -f 'sleep 50'; pgrep -c sleep
Output:
9950 sleep 500
9951 sleep 501
0
- Command ला time-limit.
timeout 2s sleep 10; echo $?
Output:
124
- 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.
Ravindra Bagale's Tip – मराठी
'kill, थांबा, मग kill -9' ही सवय करा, उलट कधीच नाही. आणि कोणत्याही pkill आधी तोच pattern pgrep -a ने चालवून नेमकं काय थांबवणार ते बघा.
Ravindra Bagale's Tip – हिंदी
'kill, रुकें, फिर kill -9' की आदत डालें, उल्टा कभी नहीं. और किसी भी pkill से पहले वही pattern pgrep -a से चलाकर देखें कि आप ठीक-ठीक क्या रोकने वाले हैं.
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 थेट मिळतो.
घरी करून बघा
- दर second 'tick' print करणारी, Ctrl+C किंवा TERM ला 'bye' आणि HUP ला 'reloaded' print करणारी script लिहा. kill ने तिन्ही test करा.
- 'sleep 100' चालवा आणि TERM, KILL आणि Ctrl+C ने थांबवल्यावर exit code काय ते शोधा. प्रत्येक number समजवा.
सराव Tasks
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 त्याच्या नावाने दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं नम्र stop
का: App ला cleanup करू द्या.
काय करायचं: PID 5520 ला default terminate signal.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं नावाने सगळ्या copies
का: gunicorn स्वच्छ restart.
काय करायचं: gunicorn नावाचे सगळे processes थांबवा आणि जाईपर्यंत थांबा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Command मर्यादा
का: Health check अडकतो.
काय करायचं: 5 second मर्यादेसह curl -s https://example.com.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Number चं नाव
का: Exit code 137 दिसला.
काय करायचं: Number 2 चं signal नाव.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Force kill
का: 30 s नंतरही TERM चाललं नाही.
काय करायचं: PID 5520 ला SIGKILL.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम जिवंत आहे का?
का: pid file check.
काय करायचं: खरा signal न पाठवता PID 3307 आहे का ते.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम PID ने nginx reload
का: BIZ चं नवं certificate.
काय करायचं: PID 980 (nginx master) ला SIGHUP.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Process pause
का: Peak hour; ETL pause.
काय करायचं: Catch न होणाऱ्या signal ने PID 9611 pause.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Process resume
का: Peak संपला.
काय करायचं: Pause केलेला PID 9611 resume.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम पूर्ण command ने stop
का: Celery workers चे PIDs ठरलेले नाहीत.
काय करायचं: पूर्ण command line 'rq worker' match होणाऱ्या प्रत्येक process ला TERM.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम User चे processes बंद
का: Intern BIZ सोडतोय.
काय करायचं: trainee7 user च्या सगळ्या processes ला TERM.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Exit ला cleanup
का: उरलेल्या temp files.
काय करायचं: Bash script मधे EXIT ला rm -f /tmp/job.lock चालवणारा trap.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Terminal बाहेर
का: pts/5 वर अनोळखी user.
काय करायचं: pts/5 terminal वरच्या सगळ्याला KILL.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड TERM मग KILL
का: Nightly job कधी अडकू नये.
काय करायचं: ./report.sh ला 1h मर्यादा, आणि पहिल्या signal नंतर 10s ने जिवंत असेल तर KILL.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड TERM ignore
का: Critical step interrupt होऊ नये.
काय करायचं: Script ला SIGTERM ignore करायला लावा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Zombies शोधा
का: Defunct entries वाढतायत.
काय करायचं: सगळ्या processes चे stat, pid, ppid, cmd list, मग awk ने field 1 मधे Z असलेल्या rows.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
19. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- kill -l list; numbers पेक्षा नावं safe.
- kill TERM पाठवतो; -9 फक्त शेवटी.
- HUP daemons reload; STOP/CONT pause आणि resume.
- नावाने pkill/killall; pgrep -a ने preview.
- timeout वेळ मर्यादा (exit 124); trap cleanup.
- Zombies: parent fix. D-state: IO fix.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








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