Bird
Raised Fist0
Linux CLIscripting~15 mins

kill and signal types in Linux CLI - Mini Project: Build & Apply

Choose your learning style10 modes available
Using kill and signal types in Linux CLI
📖 Scenario: You are managing processes on a Linux system. Sometimes, you need to stop or control processes using signals.This project will teach you how to use the kill command with different signal types to manage processes safely.
🎯 Goal: Learn to send specific signals to processes using the kill command and understand the effect of common signals like SIGTERM and SIGKILL.
📋 What You'll Learn
Create a variable with a fake process ID
Create a variable with a signal type
Use the kill command with the signal and process ID
Print the command that would be run
💡 Why This Matters
🌍 Real World
System administrators often need to stop or control processes safely using signals. Knowing how to send signals helps manage system resources and troubleshoot issues.
💼 Career
Understanding kill and signals is essential for roles like Linux system administration, DevOps, and automation scripting.
Progress0 / 4 steps
1
Set up a fake process ID
Create a variable called pid and set it to 1234 to represent a process ID.
Linux CLI
Hint

Use pid=1234 to assign the process ID.

2
Set up a signal type variable
Create a variable called signal and set it to SIGTERM to represent the termination signal.
Linux CLI
Hint

Use signal=SIGTERM to assign the signal type.

3
Use kill command with signal and pid
Write a command that uses kill with the signal stored in signal and the process ID stored in pid. Use the syntax kill -s $signal $pid.
Linux CLI
Hint

Use kill -s $signal $pid to send the signal.

4
Print the kill command
Print the exact kill command you wrote using echo. Use echo "kill -s $signal $pid" to display the command.
Linux CLI
Hint

Use echo "kill -s $signal $pid" to print the command.

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