nnn/plugins/pskill

36 lines
770 B
Plaintext
Raw Permalink Normal View History

2019-11-01 16:24:31 +00:00
#!/usr/bin/env sh
# Description: Fuzzy list and kill a (zombie) process by name
#
2019-12-09 13:06:48 +00:00
# Requires: fzf or fzy, ps
#
2019-11-01 16:24:31 +00:00
# Note: To kill a zombie process enter "zombie"
#
# Shell: POSIX compliant
# Author: Arun Prakash Jana
2019-11-21 20:44:25 +00:00
printf "Enter process name ['defunct' for zombies]: "
read -r psname
2019-11-01 16:24:31 +00:00
2019-12-09 13:06:48 +00:00
# shellcheck disable=SC2009
2019-11-01 16:24:31 +00:00
if ! [ -z "$psname" ]; then
2019-12-09 13:06:48 +00:00
if which sudo >/dev/null 2>&1; then
sucmd=sudo
elif which doas >/dev/null 2>&1; then
sucmd=doas
else
sucmd=: # noop
fi
if which fzf >/dev/null 2>&1; then
fuzzy=fzf
elif which fzy >/dev/null 2>&1; then
fuzzy=fzy
else
exit 1
fi
cmd="$(ps -ax | grep -iw "$psname" | "$fuzzy" | sed -e 's/^[ \t]*//' | cut -d' ' -f1)"
2019-11-01 16:24:31 +00:00
$sucmd kill -9 "$cmd"
fi