nnn/plugins/pskill

31 lines
648 B
Bash
Executable File

#!/usr/bin/env sh
# Description: Fuzzy list and kill a (zombie) process by name
#
# Note: To kill a zombie process enter "zombie"
#
# Shell: POSIX compliant
# Author: Arun Prakash Jana
is_cmd_exists () {
which "$1" > /dev/null 2>&1
echo $?
}
if [ "$(is_cmd_exists sudo)" -eq "0" ]; then
sucmd=sudo
elif [ "$(is_cmd_exists doas)" -eq "0" ]; then
sucmd=doas
else
sucmd=: # noop
fi
printf "Enter process name ['defunct' for zombies]: "
read -r psname
if ! [ -z "$psname" ]; then
# shellcheck disable=SC2009
cmd="$(ps -ax | grep -iw "$psname" | fzy | sed -e 's/^[ \t]*//' | cut -d' ' -f1)"
$sucmd kill -9 "$cmd"
fi