aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/pskill
blob: 979492aba16560c029f7c20a5798e35c75d0fc96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 ! [ -z "$psname" ]; then
    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
    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