If you are using systemd there are 2 watchdogs: one for hardware (using systemd.conf or using a watchdog daemon) and one for daemons initialized as services.
If systemd is your option have a look at the following:
http://0pointer.de/blog/projects/watchdog.html