可以向正在运行的 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"