Eu postei algumas informações sobre como construir, configurar e testar o daemon de watchdog do Linux aqui:
link
A resposta curta é que você precisa configurar seu sistema para criar este projeto:
sudo apt-get build-dep watchdog
sudo apt-get install build-essential automake libtool
Em seguida, obtenha o código-fonte, que você provavelmente já possui, mas o mais recente pode ser feito com estas etapas:
sudo apt-get install git
git clone git://git.code.sf.net/p/watchdog/code watchdog-code
Mova para o diretório de código e prepare-se para a compilação:
cd watchdog-code
autoreconf -i
./configure
Em seguida, para o diretório de origem e compile-o:
cd src
make clean
make
No diretório atual, você terá os novos binários. Teste-os antes de torná-los "ativos" usando sudo make install
ou, pelo menos, faça cópias de segurança dos programas fornecidos pelo sistema. Eles estão inchados comparados aos do sistema devido aos símbolos de depuração, você pode usar o comando strip se quiser reduzir o tamanho deles.
Você pode dizer que tipo de tempo você precisa para o SIGTERM funcionar?
Editado para adicionar:
Se você estiver usando o pull do GIT atual (14 de setembro de 2013), edite o shutdown.c e, na linha 363, altere "safe_sleep (4);" para ter seu valor de tempo limite desejado em segundos.
Se estiver editando o código para o watchdog fornecido pelo sistema (como mencionado acima), tome cuidado para não dormir () por mais do que o timeout de hardware (normalmente 60 segundos), pois o sistema irá simplesmente reinicializar! Essa foi a razão da função safe_sleep (), manter o watchdog alimentado enquanto espera.