We have a mission-critical server program on top of Linux and we don\'t want others to terminate it accidentally. If somebody terminates it or it crashes, we want it to rest
You can use init to babysit the process, and since init only terminates on reboot, you don't need a "program B".
Add to the end of /etc/inittab:
x:3:respawn:/path/to/my/program
For information on syntax and other options can be found in man inittab
man inittab