kill -9 $(pgrep -f "${TARGET}") #, где TARGET - это notification-daemon, но есть earlyroom, в котором в строке запуска есть |kbdd|notification-daemon|numlockx| И, конечно же, pgrep "ловит" pid earlyroom. Как этого избежать?
Есть такой вариант:
kill -9 $(ps ax | grep "${TARGET}" | grep -vE 'grep|earlyoom' | awk '{print $1}')
Но он не универсальный. Мало ли что появится еще в процессах. Как сделать универсальный вариант?
Вообще это ахтунг, что в pgrep нет возможности применять регулярки, чтобы сделать типа ^notification-daemon$ или ^notification-daemon хотя бы
UPD: Кстати, еще забыл добавить, что pgrep -f умеет в поиск сабпроцессов