首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BASH检查[进程]是否正在运行,每小时重新检查一次

BASH检查[进程]是否正在运行,每小时重新检查一次
EN

Stack Overflow用户
提问于 2014-06-07 04:25:56
回答 1查看 724关注 0票数 0

我在后台的16个驱动器上运行了shred。我想有一个bash脚本,检查进程pidof shred每小时。如果该进程未显示,则echo "Shredding Completed... else echo "Shredding Running..."

这就是我现在所拥有的,当shred没有运行时,它会回显"Shredding Completed...",但是如果它正在运行,脚本就会退出。

代码语言:javascript
复制
while :
do
if pidof shred > : && break
then
    echo "Shredding Running..."
    sleep 60m
else
    echo "Shredding Completed..."
    exit
fi

done

谢谢

修正:让我迟钝,我拿出 && break 并且它有效! 哈哈

EN

回答 1

Stack Overflow用户

发布于 2014-06-07 04:29:23

写到/dev/null而不是:,不要每次都break循环:

代码语言:javascript
复制
while :
do
  if pidof shred > /dev/null
  then
      echo "Shredding Running..."
      sleep 60m
  else
      echo "Shredding Completed..."
      exit
  fi 
done

更好的方法是:

代码语言:javascript
复制
while pidof shred > /dev/null
do
  echo "Shred running..."
  sleep 60m
done
echo "Done"

还要注意shred is not more secure,而不是一个简单的dd if=/dev/zero of=device bs=4M

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24090102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档