Я думаю ...
find ... -exec sh -c 'cmd "$0" || kill $PPID' \{\} \;
... подойдет практически для любой находки
.
-C
без необходимости выполнять grep killall -0 firefox-bin
сообщит вам, существует ли процесс firefox -bin по коду выхода. Без необходимости пайпа и перенаправления в сыром виде. if ps
и оставьте killall -9 firefox-bin && firefox-bin &> /dev/null &
. Так что если процесс не будет убит, он не будет запущен. Что произойдет, если вы замените свой блок if ps
на
for proc in /proc/*
do
if [[ $(readlink -f ${proc}/exe) = "/usr/bin/firefox-bin" ]]
sudo killall -9 firefox-bin
firefox &> /dev/null &
else
echo "Stopped"
fi
done
Это устраняет попытки анализа ps
вывода.