Все работает, я забыл ограничить количество пакетов в скрипте, правильный скрипт выглядит так -
#!/bin/bash
while :;do
sleep 30
result=$(ping 10.1.100.1 -с 4 | grep transmitted)
pattern="0 received";
if [[ $result =~ $pattern ]]; then
qm stop 113 && qm start 113
fi
done