The Pi SOC has an inbuilt watchdog timer which can be used to manage failures.
Any other system just adds (needless) complexity and testing is a challenge.
Having said this I have never had an unprovoked failure, even though I have several Pi running continuously. They seem to survive through the inevitable power failures.
IMO the Pi Zero is not the best choice; the build quality is poor and they have critical components extending past the edge of the board.
In telecommunications plant it is usual to have parallel processors which can be hot swapped.
Edit
There is a BCM hardware watchdog; If you want to start the hardware watchdog include dtparam=watchdog=on
in /boot/config.txt
In and of itself this does little, although it should restart the system if not "kicked" regularly. You can write code which opens /dev/watchdog
to kick it off.
There is also a watchdog
daemon
which you can configure to activate the watchdog; you should be able to start with
sudo systemctl enable watchdog
systemctl status watchdog.service
will show its status.
You should read man watchdog
and it is possible to configure it in /etc/watchdog.conf
See man watchdog.conf
I set mine up years ago, and while I did some testing at the time and provoked outages, I just leave it running on all my Pi. I haven't touched it in years, except to debug the systemd service in Jessie.
I believe there is a newer command sudo wdctl /dev/watchdog
to check status.
In the "good old days" (1970/1980s) it was common to use an external timer (often a 555) as a watchdog, but this is rarely necessary with modern hardware.