[Bash] Kill command

Zhentiw發表於2024-05-24

The kill command sends a signal to a process, usually to terminate the process.

kill PID

This command sends the SIGTERM signal to the process with the given PID.

Common Options:

-l: List all signal names.
-9 or -KILL: Send the SIGKILL signal to forcefully terminate a process.
-15 or -TERM: Send the SIGTERM signal to gracefully terminate a process (default).

# Terminate a process with PID 1234:
kill 1234

# Forcefully terminate a process with PID 1234
kill -9 1234

# List all signal names
kill -l

Pratice

# Find the process IDs and names of the zsh process
$ pgrep -l zsh
1092 zsh

# Find the process IDs of processes for the current user:
pgrep -u $USER
#!/bin/zsh

echo "Enter the process name to terminate: "
read process_name

pids=$(pgrep "$process_name")

# if pids length is 0
if [ -z "$pids" ]; then 
  echo "No process found with the name $process_name."
  exit 1
fi

echo "Found the following PIDs for $process_name: $pids"
echo "Terminating processes..."

for pid in $pid; do
  kill -9 $pid
  echo "Terminated process with PID $pid"
done
  • pgrep "$process_name": Finds all PIDs for the given process name.
  • if [ -z "$pids" ]; then ... fi: Checks if any PIDs were found.
  • for pid in $pids; do ... done: Iterates over each PID and sends the SIGKILL signal to terminate it.

相關文章