You want to have a look at Heart.
In addition if you have NIF calls that are considered dangerous it is recommended to isolate them together with Erlang code close to them on a separate node. There are several ways of monitoring and restarting a node (e.g. Slave).
Generally however I would advise against the usage of problematic NIFs, depending on for what you are using them there are more stable alternatives.
Reason for NIF -> replacement
Sequential speed -> better optimized Erlang code. Often the high sequential speed of NIFs come at the price of them messing with Erlangs schedulers which often results in actual worse performance.
Interfacing with external libs/apps -> Erlangs ports are much better at failure isolation
heart
actually failed to start my node correctly, using the same command line used to start it initially. Don't know why and I don't have time to track it down. – Tenacious