看我需要能夠調用這個:殺從慶典
手錶-n1執行cat/proc/mdstat
從慶典。
對於raid創建監視(在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"
但我無法弄清楚如何從bash中取出手錶。我嘗試了PID=$!
和PID=$$
,pidof watch
在他的循環中,但不能將正確的PID
分配給我的變量以使kill -9 $PID
。
另外,你基本上不應該使用'kill -9'。在正常情況下,只需「殺死」就足夠了。 – tripleee 2014-10-03 11:49:18
在這段代碼中,'break'會導致腳本退出循環,所以'kill'永遠不會被執行。切換這兩條語句的順序。 – tripleee 2014-10-03 11:50:44
請注意watch命令在前臺運行。腳本永遠不會超過手錶的第一次執行。 – nos 2014-10-03 11:54:00