while true; do
echo "0"
sleep 30
done > /dev/watchdog
O watchdog de hardware no meu sistema precisa de 0
gravado em /dev/watchdog
em intervalo menor que 60 segundos ou ele será acionado. O identificador de arquivo deve ser mantido aberto no entanto ou o watchdog é desativado.
Por exemplo,
echo "0" > /dev/watchdog
não funciona, pois o identificador de arquivo é fechado depois que o eco é concluído.
Existe alguma maneira de configurar um loop no bash que irá gravar 0
periodicamente em /dev/watchdog
, mas manterá o identificador de arquivos aberto?
Parece que você quer um daemon:
while sleep 50; do
echo 0
done > /dev/watchdog
O identificador de arquivo aqui não será fechado até que o loop seja concluído. Observe que, se a execução ficar bloqueada por > 10 segundos por algum motivo, isso poderá falhar. É improvável que isso aconteça, mas é tecnicamente viável.
Você faria melhor em escrever uma condição while
que também inclua as condições para sua falha no watchdog.