Bird
Raised Fist0
Linux CLIscripting~5 mins

kill and signal types in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes a program or process on your computer stops responding or needs to be stopped. The kill command lets you send signals to these processes to control or stop them safely or forcefully.
When a program freezes and you want to stop it without restarting your computer
When you want to politely ask a program to close and save its work
When a program ignores polite requests and you need to force it to stop immediately
When you want to send a custom signal to a process to trigger a specific action
When managing background tasks and you need to control their behavior
Commands
This command sends the SIGTERM signal to the process with ID 1234. SIGTERM politely asks the process to stop, allowing it to clean up before exiting.
Terminal
kill -SIGTERM 1234
Expected OutputExpected
No output (command runs silently)
→
-SIGTERM - Specifies the polite termination signal
This command sends the SIGKILL signal (signal number 9) to process 1234. It forcefully stops the process immediately without cleanup.
Terminal
kill -9 1234
Expected OutputExpected
No output (command runs silently)
→
-9 - Force kill signal that cannot be ignored
Lists all available signal names and their numbers so you can choose which signal to send.
Terminal
kill -l
Expected OutputExpected
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS
Sends the SIGINT signal to process 1234, which usually interrupts the process as if you pressed Ctrl+C.
Terminal
kill -SIGINT 1234
Expected OutputExpected
No output (command runs silently)
→
-SIGINT - Interrupt signal to stop a process gracefully
Key Concept

If you remember nothing else from this pattern, remember: use SIGTERM to politely stop a process and SIGKILL to force it to stop immediately.

Common Mistakes
Using kill without specifying a signal and expecting it to force stop the process
By default, kill sends SIGTERM which the process can ignore or delay, so it may not stop immediately.
Use kill -9 to send SIGKILL if you need to force stop a process immediately.
Trying to kill a process with the wrong process ID
The kill command will fail silently or affect the wrong process if the ID is incorrect.
Verify the process ID using commands like ps or pidof before using kill.
Using kill -9 as the first option without trying polite signals
SIGKILL does not allow the process to clean up, which can cause data loss or corruption.
Try kill with SIGTERM first to allow graceful shutdown before using SIGKILL.
Summary
kill sends signals to processes to control or stop them.
SIGTERM (default) politely asks a process to stop, allowing cleanup.
SIGKILL (signal 9) forcefully stops a process immediately without cleanup.

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