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