aboutsummaryrefslogtreecommitdiff
path: root/files/.config/nnn/plugins/pskill
diff options
context:
space:
mode:
Diffstat (limited to 'files/.config/nnn/plugins/pskill')
-rwxr-xr-xfiles/.config/nnn/plugins/pskill35
1 files changed, 35 insertions, 0 deletions
diff --git a/files/.config/nnn/plugins/pskill b/files/.config/nnn/plugins/pskill
new file mode 100755
index 0000000..e01c739
--- /dev/null
+++ b/files/.config/nnn/plugins/pskill
@@ -0,0 +1,35 @@
+#!/usr/bin/env sh
+
+# Description: Fuzzy list and kill a (zombie) process by name
+#
+# Dependencies: fzf, ps
+#
+# Note: To kill a zombie process enter "zombie"
+#
+# Shell: POSIX compliant
+# Author: Arun Prakash Jana
+
+printf "Enter process name ['defunct' for zombies]: "
+read -r psname
+
+# shellcheck disable=SC2009
+if [ -n "$psname" ]; then
+ if type sudo >/dev/null 2>&1; then
+ sucmd=sudo
+ elif type doas >/dev/null 2>&1; then
+ sucmd=doas
+ else
+ sucmd=: # noop
+ fi
+
+ if type fzf >/dev/null 2>&1; then
+ fuzzy=fzf
+ else
+ exit 1
+ fi
+
+ cmd="$(ps -ax | grep -iw "$psname" | "$fuzzy" | sed -e 's/^[ \t]*//' | cut -d' ' -f1)"
+ if [ -n "$cmd" ]; then
+ $sucmd kill -9 "$cmd"
+ fi
+fi