Убить часы из баш

Я должен быть в состоянии назвать это:

смотреть -n1 cat /proc/mdstat

из Баш.

Для наблюдения за созданием рейда (после mdadm --create и т. Д.), А затем убить его, тогда процесс сборки закончится.

#!/bin/bash
#PID=$!
while
progress=$(cat /proc/mdstat |grep -oE 'recovery = ? [0-9]*')
do
    watch -n1 cat /proc/mdstat
    PID=$(pidof watch)
    echo "$PID" >> /mnt/pid
    if (("$progress" >= "100"))
        then
            break
            kill -9 $PID
    fi
done
echo "done" 

Но я не могу понять, как убить смотреть из Баш. Я старался PID=$! а также PID=$$, pidof watch в цикле и вне его, но не могу назначить правильно PID к моей переменной, чтобы сделать kill -9 $PID,

1 ответ

Решение

Похоже, вам нужно будет запустить часы, пока прогресс не достигнет 100?

watch  -n1 cat /proc/mdstat &
WATCHPID=$!
while
progress=$(cat /proc/mdstat |grep -oE 'recovery = ? [0-9]*')
do

if (("$progress" >= "100"))
    then
        break

fi
sleep 1
done

kill $WATCHPID

echo "done" 
Другие вопросы по тегам