如何在不使用crontab的情况下在后台连续运行脚本

时间:2012-05-04 11:53:48

标签: linux unix solaris

我有一个小脚本可以连续检查某些条件,一旦满足该条件,程序就应该执行。可以做到这一点。我想过使用crontab,其中脚本每5分钟运行一次,但现在我希望在没有crontab

的情况下完成

1 个答案:

答案 0 :(得分:1)

您可能希望首先创建一个无限循环,然后在该循​​环内您可能想要验证您的状况或稍等一下。由于您没有提到您想要使用哪种脚本语言,我将为该示例编写伪代码。给我们更多关于脚本语言的信息,也许还有条件。

伪代码中的示例:

# Defining a timeout of 1 sec, so checking the condition every second
timeout = 1

# Running in background infinitely
while true do
  # Let's check the condition
  if condition then
    # I got work to do
    ...
  else
    # Let's wait a specified timeout, not to block the system
    sleep timeout
  endif
endwhile

带输入代码的示例

#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin

# Defining a timeout of 1 hour
timeout=3600

while true
do
  case 'df /tmp' in
    " "[5-9]?%" ") rm -f /tmp/af.*
      ;;
    *)
      sleep $timeout
      ;;
  esac
done

然后,您可以使用'nohup'从shell运行此脚本:

nohup yourscript &