AFAIK there's no tool out there, but I've seen somewhere using monit as a suggestion:
I found monit extremely counter-intuitive, so I usually just use crontab to start a script on startup.
In Dart, you can wrap your application entry point in its own zone (using "runZoned"), and catch all uncaught errors, without having
the application crash:
I have a very basic implementation of something like PM2. Emphasis on basic. I also have stopped updating it, and don't even use it:
If you find it attractive though, please consider contributing, and we can work it into a real solution for future users...