O que você quer dizer com "se a sincronização falhar"? Man page for sync (2) diz sobre os códigos de retorno "sync () é sempre bem sucedido". Então, apenas uma maneira de "falhar" no seu caso é que ele não retorna o controle para watchdogd rápido o suficiente (porque muitos blocos para escrever, gravação lenta, disco quebrado ou corrompido ou sistema de arquivos ou camada de E / S do kernel, ... )
E se ele não devolver o controle ao watchdogd rápido o suficiente, ele não poderá gravar em / dev / watchdog em breve, e seu watchdog de hardware deve acionar a reinicialização do hardware.
stat (2) pode ter problema com o disco não gravável somente se o erro for desse tipo para evitar a leitura (bug do kernel, camada de E / S corrompida). E sim, poderia ser suspenso se houvesse um problema ali. BTW, você deve usar "file = / var / log / messages" em combinação com "change=" para que o watchdog inicie a reinicialização se o arquivo não for alterado com freqüência suficiente.
Quanto ao watchdog, você tem certeza absoluta de que o watchdog de hardware está funcionando? você modprobe o módulo de hardware correto antes de iniciar o watchdogd? O dmesg (8) indica isso? Se você "KILL -STOP" watchdogd processo, a máquina deve reiniciar. Em caso afirmativo, você pode tentar adicionar a opção "nowayout" ao seu módulo de hardware para eliminar a chance de, por exemplo, killer do OOM matar watchdogd e parar o watchdog de hardware. Você também pode adicionar "test-binary" e "test-timeout" para executar um script personalizado que retornaria se o sistema fosse considerado ativo ou não (e iniciasse a reinicialização se não fosse).