Pictured: StayUp just won't let a process die When I was working at Fashionbuddha , I developed a little tool called "StayUp" for use on installation and kiosk work. It is a C#.NET console application for Windows that simply launches a process, monitors the process until it ends, then relaunches it -- ad infinitum. I have relied on this tool for dozens of projects at this point and it's never failed me. I thought I would share. STAYUP BINARY, SAMPLE, AND SOURCE ON GITHUB Run StayUp from a console window, passing the relative path to the target application as an argument. That's it. For example, if "StayUp.exe" and "MyApplication.exe" were sitting in the same folder, you would call: StayUp MyApplication.exe Now "MyApplication.exe" will remain persistent. Creating a batch file (*.bat) or other script and throwing it in your machine's "Startup" folder will ensure your application runs not only after an unintended exit, but also on reboot. StayUp also logs information and errors to your system's event log. It monitors your application for unresponsiveness, restarting it if needed. Check out the inline documentation for command line arguments. The sample includes "Crash Test", a Cinder application which fails and exits in a variety of ways. StayUp watches for Crash Test to freeze or exit and handles it accordingly. Pictured: Crash Test has problems