Состояние Иногда не удалось проверить, работает ли конкретный процесс или нет

Я думаю ...

find ... -exec sh -c 'cmd "$0" || kill $PPID' \{\} \;

... подойдет практически для любой находки .

0
19.12.2018, 01:15
2 ответа
  1. Ps имеет параметр -Cбез необходимости выполнять grep
  2. killall -0 firefox-binсообщит вам, существует ли процесс firefox -bin по коду выхода. Без необходимости пайпа и перенаправления в сыром виде.
  3. Просто удалите if psи оставьте killall -9 firefox-bin && firefox-bin &> /dev/null &. Так что если процесс не будет убит, он не будет запущен.
1
28.01.2020, 02:41

Что произойдет, если вы замените свой блок 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вывода.

0
28.01.2020, 02:41

Теги

Похожие вопросы