Bird
Raised Fist0
Linux CLIscripting~10 mins

kill and signal types in Linux CLI - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - kill and signal types
Start: Identify process
↓
Choose signal type
↓
Send signal with kill command
↓
Process receives signal
↓
Process reacts: terminate, pause, ignore, etc.
↓
End: Signal effect observed
The flow shows how you pick a process, choose a signal, send it with kill, and the process reacts accordingly.
Execution Sample
Linux CLI
kill -SIGTERM 1234
kill -9 1234
kill -SIGSTOP 1234
Send different signals (terminate, force kill, stop) to process with ID 1234.
Execution Table
StepCommandSignal SentProcess ReactionOutput/Result
1kill -SIGTERM 1234SIGTERM (15)Process requests graceful shutdownNo output if successful
2kill -9 1234SIGKILL (9)Process immediately terminatesNo output if successful
3kill -SIGSTOP 1234SIGSTOP (19)Process pauses (stops execution)No output if successful
4kill -SIGCONT 1234SIGCONT (18)Process resumes executionNo output if successful
5kill -SIGINT 1234SIGINT (2)Process interrupts (like Ctrl+C)No output if successful
6kill -SIGUSR1 1234SIGUSR1 (10)Process handles user-defined signalNo output if successful
7kill -SIGTERM 999999SIGTERM (15)No such processkill: (999999) - No such process
💡 Execution stops after all signals sent or if process does not exist.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5After Step 6After Step 7
Process StateRunningGraceful shutdown requestedTerminatedPausedResumedInterruptedUser signal handledNo process found
Key Moments - 3 Insights
Why does kill -9 immediately stop the process while kill -SIGTERM allows it to clean up?
kill -9 sends SIGKILL which cannot be caught or ignored, forcing immediate termination. kill -SIGTERM sends SIGTERM which the process can catch and handle to clean up before exiting, as shown in steps 1 and 2 of the execution_table.
What happens if you send a signal to a process ID that does not exist?
The kill command returns an error message like 'No such process' as shown in step 7 of the execution_table, because the system cannot find the process to signal.
How does SIGSTOP differ from SIGTERM in process control?
SIGSTOP pauses the process without terminating it, allowing it to be resumed later with SIGCONT, as shown in steps 3 and 4. SIGTERM requests termination.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what signal does 'kill -9 1234' send?
ASIGKILL (9)
BSIGTERM (15)
CSIGSTOP (19)
DSIGINT (2)
💡 Hint
Check step 2 in the execution_table under 'Signal Sent' column.
At which step does the process get paused?
AStep 1
BStep 3
CStep 5
DStep 7
💡 Hint
Look for 'Paused' in the 'Process Reaction' column in the execution_table.
If you send SIGTERM to a non-existing process, what output do you expect?
AProcess terminates silently
BNo output
Ckill: (999999) - No such process
DProcess pauses
💡 Hint
See step 7 in the execution_table for the error message.
Concept Snapshot
kill command sends signals to processes by PID
Common signals: SIGTERM(15) graceful stop, SIGKILL(9) force stop, SIGSTOP(19) pause
Process reacts based on signal: terminate, pause, ignore
Use kill -SIGNAL PID or kill -number PID
SIGKILL cannot be caught or ignored
SIGSTOP pauses process until SIGCONT resumes it
Full Transcript
This lesson shows how the kill command sends different signals to processes by their ID. First, you identify the process to signal. Then you choose a signal type like SIGTERM to ask the process to stop nicely, or SIGKILL to force it to stop immediately. The process reacts depending on the signal: it may shut down, pause, or ignore it. The execution table traces sending signals like SIGTERM, SIGKILL, SIGSTOP, and SIGCONT to process 1234, showing how the process state changes from running to terminated or paused. If you send a signal to a non-existing process, kill reports an error. Key points include that SIGKILL cannot be caught or ignored, while SIGTERM can be handled by the process. SIGSTOP pauses the process until SIGCONT resumes it. This helps you control processes safely and effectively in Linux.

Practice

(1/5)
1. What is the default signal sent by the kill command if no signal is specified?
easy
A. SIGINT (interrupt the process)
B. SIGTERM (terminate gracefully)
C. SIGSTOP (pause the process)
D. SIGKILL (force kill immediately)

Solution

  1. Step 1: Understand the default behavior of kill

    The kill command sends signals to processes. If no signal is specified, it sends the default signal.
  2. Step 2: Identify the default signal

    The default signal is SIGTERM, which asks the process to terminate gracefully, allowing cleanup.
  3. Final Answer:

    SIGTERM (terminate gracefully) -> Option B
  4. Quick Check:

    Default kill signal = SIGTERM [OK]
Hint: Remember: kill defaults to SIGTERM for polite stop [OK]
Common Mistakes:
  • Confusing SIGKILL as default signal
  • Thinking SIGSTOP pauses instead of terminates
  • Assuming SIGINT is default for kill
2. Which of the following is the correct syntax to send a SIGKILL signal to a process with PID 1234?
easy
A. kill 1234 -9
B. kill 1234 -s SIGKILL
C. kill 1234 -SIGKILL
D. kill -9 1234

Solution

  1. Step 1: Recall the syntax for sending signals with kill

    The kill command can use -s SIGNAL or numeric signal with a dash before the number.
  2. Step 2: Identify the correct numeric signal and position

    -9 is the numeric code for SIGKILL. The correct syntax is kill -9 PID. All other options incorrectly place the signal specification after the PID, which is invalid syntax.
  3. Final Answer:

    kill -9 1234 -> Option D
  4. Quick Check:

    kill -9 PID sends SIGKILL [OK]
Hint: Use kill -9 PID to force kill quickly [OK]
Common Mistakes:
  • Placing signal after PID
  • Using -SIGKILL instead of -s SIGKILL
  • Confusing signal names and numbers
3. What will be the output of the following command sequence?
sleep 100 &
kill -15 $!

Assuming $! is the PID of the sleep process.
medium
A. The sleep process stops gracefully after receiving SIGTERM
B. The sleep process is immediately killed without cleanup
C. The sleep process ignores the signal and continues running
D. Syntax error due to incorrect kill command

Solution

  1. Step 1: Understand the commands

    sleep 100 & runs sleep in background. $! stores its PID. kill -15 $! sends SIGTERM (signal 15) to that PID.
  2. Step 2: Effect of SIGTERM on sleep

    SIGTERM asks the process to stop gracefully. Sleep will stop waiting and exit cleanly.
  3. Final Answer:

    The sleep process stops gracefully after receiving SIGTERM -> Option A
  4. Quick Check:

    kill -15 sends SIGTERM = graceful stop [OK]
Hint: Signal 15 (SIGTERM) politely stops processes [OK]
Common Mistakes:
  • Confusing SIGTERM with SIGKILL immediate stop
  • Assuming sleep ignores SIGTERM
  • Thinking kill command syntax is wrong
4. You try to stop a stubborn process with kill -15 5678 but it keeps running. What is the best fix?
medium
A. Use kill -1 5678 to send SIGHUP
B. Restart the system to clear the process
C. Use kill -9 5678 to force kill immediately
D. Use kill 5678 without signal

Solution

  1. Step 1: Understand why SIGTERM might fail

    SIGTERM (signal 15) asks process to stop nicely, but some processes ignore or handle it differently.
  2. Step 2: Use SIGKILL to force stop

    SIGKILL (signal 9) forces immediate termination and cannot be ignored. Using kill -9 is the best fix for stubborn processes.
  3. Final Answer:

    Use kill -9 5678 to force kill immediately -> Option C
  4. Quick Check:

    kill -9 forces stop when SIGTERM fails [OK]
Hint: If kill -15 fails, try kill -9 to force stop [OK]
Common Mistakes:
  • Using kill without signal defaults to SIGTERM
  • Using SIGHUP does not force stop
  • Restarting system is last resort, not first
5. You want to pause a process with PID 4321 temporarily and then resume it later. Which signals should you send in order?
hard
A. Send SIGSTOP to pause, then SIGCONT to resume
B. Send SIGTERM to pause, then SIGKILL to resume
C. Send SIGKILL to pause, then SIGSTOP to resume
D. Send SIGINT to pause, then SIGTERM to resume

Solution

  1. Step 1: Identify signals to pause and resume

    SIGSTOP pauses a process immediately without termination. SIGCONT resumes a paused process.
  2. Step 2: Understand incorrect options

    SIGTERM and SIGKILL terminate processes, not pause or resume. SIGINT interrupts but does not pause/resume.
  3. Final Answer:

    Send SIGSTOP to pause, then SIGCONT to resume -> Option A
  4. Quick Check:

    Pause = SIGSTOP, Resume = SIGCONT [OK]
Hint: Pause with SIGSTOP, resume with SIGCONT signals [OK]
Common Mistakes:
  • Using SIGTERM or SIGKILL to pause processes
  • Confusing SIGINT with pause/resume signals
  • Thinking kill without signal pauses process
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard