1

特定の条件を継続的にチェックする小さなスクリプトがあり、その条件が満たされるとすぐにプログラムが実行されます。これはできますか。スクリプトが5分ごとに実行されるcrontabを使用することを考えましたが、今はcrontabなしで実行したいと考えています。

4

1 に答える 1

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

入力コードを使用した sh の例

#!/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」を使用してシェルからこのスクリプトを実行できます。

nohup yourscript &
于 2012-05-04T12:07:03.727 に答える