実行中の clamd インスタンスに SIGUSR2 を送信して、署名を再ロードすることができます。
しかし、署名が再ロードされたかどうかを (スクリプトから) どのように判断すればよいのでしょうか? もちろん、「sleep 30」を試すことはできますが、ほとんどの場合 (私の経験から) これで十分ですが、ログファイルを解析する以外にスクリプト ベースのアプローチはありますか?
答え1
見つけた:
#!/bin/bash
echo RELOAD | socat - /var/run/clamav/clamd.ctl
seconds=0
while : ; do
output=`echo PING | socat - /var/run/clamav/clamd.ctl`
if [ "$output" == "PONG" ]; then
break
fi
sleep 1
seconds=$[$seconds+1]
done
echo "reloaded after" $seconds "seconds"