aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-01 21:54:31 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-11-01 21:54:51 +0530
commit013dad11868df0b389d5ccc87943678abe0bf83e (patch)
tree58ff5880a0c133596c7378e96b827f207482e654
parentc5c9323d3080854528f7c122a71b1285b2110fc7 (diff)
downloadnnn-013dad11868df0b389d5ccc87943678abe0bf83e.tar.gz
plugin pskill
-rw-r--r--plugins/README.md1
-rwxr-xr-xplugins/pskill29
2 files changed, 30 insertions, 0 deletions
diff --git a/plugins/README.md b/plugins/README.md
index 5163cb2..e68ce25 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -35,6 +35,7 @@ The currently available plugins are listed below.
| pastebin | sh | - | Paste contents of a text a file ix.io |
| pdfview | sh | pdftotext/<br>mupdf-tools | View PDF file in `$PAGER` |
| picker | sh | nnn | Pick files and list one per line (to pipe) |
+| pskill | sh | fzy, sudo/doas | Fuzzy list by name and kill process or zombie |
| pywal | sh | pywal | Set image as wallpaper, change terminal colorscheme |
| readit | sh | pdftotext, mpv,<br>pico2wave | Read a PDF or text file aloud |
| ringtone | sh | date, ffmpeg | Create a variable bitrate mp3 ringtone from file |
diff --git a/plugins/pskill b/plugins/pskill
new file mode 100755
index 0000000..dcec180
--- /dev/null
+++ b/plugins/pskill
@@ -0,0 +1,29 @@
+#!/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
+
+echo -n "Enter process name ['defunct' for zombies]: "
+read psname
+
+if ! [ -z "$psname" ]; then
+ cmd="$(ps -ax | grep -iw "$psname" | fzy | sed -e 's/^[ \t]*//' | cut -d' ' -f1)"
+ $sucmd kill -9 "$cmd"
+fi