Есть демон на bash. В нем цикл, какой-то такой:
while true
do
sleep $KEEPTIME
действие
done
Причём sleep в минутах. При этом «действие» должно совершаться так же по некоторому событию и желательно не через минуты, а сам демон должен подождать ещё какое-то время если действие в последний раз было вполнено по событию. Как это сделать?
Пока придумал так - пусть действие по событию выполнит другой скрипт, а демону отправит сигнал (например USR1) об этом, узнав о его PID из заранее оговоренного файла (например /dev/shm/mydaemon.pid). В демон при этом добавим что-то типа: trap 'sleep $ЕЩЁЧУТЬЧУТЬ' SIGUSR1.
Но что-то мне так не нравится. Какие ещё можно придумать способы?