Linux. Когда killall не помагает.

Бывают ситуации, когда killall не помогает, давайте напишем свой killall!

#!/bin/bash
#./killall 
#$1 первый параметр - строка по которой ищется процесс
#$2 второй параметр - сигнал посылаемый командой kill
 
ps aux | grep $1 | awk '{ print $2}' | xargs kill $2

ps aux — находит все процессы
grep $1 — выбирает из них необходимые нам процессы, поиск идет по первому параметру переданному скрипту
awk ‘{ print $2}’ — вытаскивает только PID
xargs kill $2 — xargs построчно передает PID процессов команде kill, если необходимо, то для команды kill можно задать сигнал — второй параметр передаваемый скрипту, он не обязателен.

Пример.

./killall "/sbin/mount.cifs //192.168.1.1" -9

либо командой

ps aux | grep "/sbin/mount.cifs //192.168.1.1" | awk '{ print $2}' | xargs kill -9