可以將 SIGUSR2 傳送到正在運行的 clamd 實例以重新載入簽名。
但是我如何(從腳本)確定簽名是否已重新加載?我當然可以嘗試“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"