StudyLover
  • Home
  • Study Zone
  • Profiles
  • Typing Tutor
  • Contact us
  • Sign in
StudyLover Monitoring: kill
Download
  1. Linux
Monitoring: ps : Networking with ping and wget
Linux

kill — how you stop or control processes by sending signals.


What kill really does

kill doesn’t just “kill”; it sends a signal to one or more processes.

·         Default signal = SIGTERM (15) → “please exit cleanly.”

·         Only SIGKILL (9) and SIGSTOP (19) can’t be caught/ignored.

·         You can signal by PID, job id (like %1), or even process group.

You can only signal processes you own. root can signal any.


Quick syntax

kill PID                 # send SIGTERM (polite stop)

kill -SIGTERM PID        # same as above

kill -15 PID             # same as above (15 = SIGTERM)

kill -9 PID              # SIGKILL (force stop, last resort)

kill -SIGINT PID         # like pressing Ctrl+C to that process

kill -SIGSTOP PID        # pause (cannot be caught)

kill -SIGCONT PID        # continue a stopped process

kill -HUP PID            # “hang up” (many daemons = reload config)

kill -l                  # list signals on your system

Multiple targets:

kill -TERM 1234 5678 9012

By job id (current shell):

sleep 300 &          # background job -> [1] PID

kill %1              # signal job #1

Signal a whole process group (advanced but useful):

kill -TERM -1234     # minus PID means “process group 1234”


Common signals (you’ll actually use)

Name

Num

Meaning / Use

SIGTERM

15

Ask to exit cleanly (default). Prefer this first.

SIGINT

2

Interrupt (like Ctrl+C to foreground job).

SIGHUP

1

“Hang up”; many services interpret as reload config.

SIGKILL

9

Force kill immediately (can’t be trapped). Last resort.

SIGSTOP

19

Pause a process (can’t be trapped).

SIGCONT

18

Resume a stopped process.

SIGTSTP

20

Stop from terminal (Ctrl+Z).

Numbers can differ slightly across UNIXes; names are portable.


Finding what to kill

ps -ef | grep myapp

pgrep -fl myapp          # nicer: list PIDs and full names

top / htop               # interactively find PIDs (top: press k to kill)


kill vs pkill vs killall

·         kill PID: by ID (precise).

·         pkill pattern: by name/regex (be careful; affects matching processes).

·         pkill -f "python.*train.py"   # match full cmdline (-f)

·         pkill -u alice chrome         # only user alice’s chrome

·         killall name: by exact command name (Linux).

On macOS, killall targets apps by name (different behavior). On Linux it’s safe for CLI names.


Typical student scenarios

1) Nicely stop a runaway job

pgrep -fl myscript            # get PID(s)

kill -TERM <PID>

2) If it ignores TERM

kill -INT  <PID>              # try interrupt (like Ctrl+C)

kill -HUP  <PID>              # some daemons reload / exit cleanly

kill -KILL <PID>              # LAST resort (may lose data)

3) Pause & resume a heavy process

kill -STOP <PID>              # pause

# … free the CPU/GPU/disk …

kill -CONT <PID>              # resume

4) Reload a service without full restart (if it supports SIGHUP)

sudo kill -HUP $(cat /run/nginx.pid)   # nginx common pattern


Reading errors (and fixes)

·         kill: (PID) - No such process → it already exited or wrong PID.

·         Operation not permitted → you don’t own it; use sudo (if appropriate).

·         Nothing happens → process may be ignoring the signal; escalate gently (TERM → INT/HUP → KILL).


Safety tips

·         Prefer SIGTERM first; SIGKILL only if necessary (it skips cleanup, can leave temp files/locks).

·         Double-check the PID (ps -p PID -o pid,cmd) before signaling.

·         When matching by name, narrow the pattern (pkill -u yourname exactname).

·         On shared systems, don’t kill processes you don’t own unless you’re the admin.


Mini-lab (10–15 min)

# Start a test job

sleep 300 &            # note job id and PID: echo $!

 
# 1) Interrupt like Ctrl+C

kill -INT $!           # job should exit

 
# Start again

sleep 300 &

 
# 2) Stop and continue

kill -STOP $!

sleep 1 && ps -p $! -o pid,stat,cmd     # STAT should show T (stopped)

kill -CONT $!

 
# 3) Terminate politely, then force (if still running)

kill -TERM $!

sleep 1 && ps -p $! || echo "Ended"

# (If still there: kill -KILL $!)


Exam-ready bullets

·         kill sends signals (default SIGTERM 15) to PIDs/jobs/groups.

·         Use names or numbers: kill -TERM pid, kill -15 pid.

·         SIGKILL (9) & SIGSTOP (19) cannot be caught/ignored.

·         Find targets with ps, pgrep, top/htop.

·         pkill/killall kill by name (broader; be cautious).

·         Process groups: kill -TERM -PGID to signal a whole group.

·         Admin rule: TERM → (INT/HUP) → KILL in that order.

Want this plus ps/top on a printable monitoring sheet for your class? I can format it neatly.

 

Monitoring: ps Networking with ping and wget
Our Products & Services
  • Home
Connect with us
  • Contact us
  • +91 82955 87844
  • Rk6yadav@gmail.com

StudyLover - About us

The Best knowledge for Best people.

Copyright © StudyLover
Powered by Odoo - Create a free website