Configure a server program to restart after crash

I have a web service that runs on Linux. Is there a conventional way to ensure the server is restarted in the event of a crash?

I suppose I might have a shell script which does something like this:

while true; do ./myserver; done

But I think the need to attach the script to a session makes this a poor solution. What is the correct way to do this?

Should there be a daemon process which spawns the server as another daemon? Or is there a better way?


This can be handled by systemd. A very basic service definition file could look like this:

[Unit]
Description=my server

[Service]
Type=simple
ExecStart=/path/to/myserver
Restart=on-failure

[Install]
WantedBy=multi-user.target