看我需要能够调用这个:杀从庆典
手表-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