2019-11-01 21:54:31 +05:30
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
|
|
|
# Description: Fuzzy list and kill a (zombie) process by name
|
|
|
|
#
|
2020-05-06 18:41:01 +05:30
|
|
|
# Dependencies: fzf, ps
|
2019-12-09 18:36:48 +05:30
|
|
|
#
|
2019-11-01 21:54:31 +05:30
|
|
|
# Note: To kill a zombie process enter "zombie"
|
|
|
|
#
|
|
|
|
# Shell: POSIX compliant
|
|
|
|
# Author: Arun Prakash Jana
|
|
|
|
|
2019-11-22 02:14:25 +05:30
|
|
|
printf "Enter process name ['defunct' for zombies]: "
|
|
|
|
read -r psname
|
2019-11-01 21:54:31 +05:30
|
|
|
|
2019-12-09 18:36:48 +05:30
|
|
|
# shellcheck disable=SC2009
|
2020-11-22 20:09:14 +05:30
|
|
|
if [ -n "$psname" ]; then
|
2021-05-14 17:33:28 +05:30
|
|
|
if type sudo >/dev/null 2>&1; then
|
2019-12-09 18:36:48 +05:30
|
|
|
sucmd=sudo
|
2021-05-14 17:33:28 +05:30
|
|
|
elif type doas >/dev/null 2>&1; then
|
2019-12-09 18:36:48 +05:30
|
|
|
sucmd=doas
|
|
|
|
else
|
|
|
|
sucmd=: # noop
|
|
|
|
fi
|
|
|
|
|
2021-05-14 17:33:28 +05:30
|
|
|
if type fzf >/dev/null 2>&1; then
|
2019-12-09 18:36:48 +05:30
|
|
|
fuzzy=fzf
|
|
|
|
else
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
cmd="$(ps -ax | grep -iw "$psname" | "$fuzzy" | sed -e 's/^[ \t]*//' | cut -d' ' -f1)"
|
2020-08-20 03:21:26 -06:00
|
|
|
if [ -n "$cmd" ]; then
|
|
|
|
$sucmd kill -9 "$cmd"
|
|
|
|
fi
|
2019-11-01 21:54:31 +05:30
|
|
|
fi
|