Auto-restart process on crash
Solution 1
There's a few options - you could always wrap it in a short shell script like this:-
#!/bin/sh
RC=1
while [ $RC -ne 0 ]; do
./my-java-app
RC=$?
done
Far from elegant, but may suffice.
Solution 2
What you're looking for is usually called process monitoring or process supervision. There are many tools that do this, usually as part of a varying set of features. Upstart is more and more used for system services in the Linux world. Monit is the first thing I'd try for a program not started by root, but there are many alternatives.
Related videos on Youtube
sasuke
Updated on September 17, 2022Comments
-
sasuke over 1 year
I have a Java server process which runs native code and the possibility of the entire process crashing due to a problem in native code is always there. Is there any mechanism offered by *nix operating systems wherein I can make the process re-spawn itself when it exists abnormally (exit status != 0)?
Is there any tool/utility out there which can automate this task for any kind of process by providing a certain level of control/configuration at the same time?
-
sasuke over 13 yearsWorks nice! One more question: is there any tool/utility out there which can automate this task for any kind of process by providing a certain level of control/configuration at the same time?
-
Andy Smith over 13 yearsSounds like something I should write :-D
-
sasuke over 13 yearsThose tools sounds interesting. For the time being I've decided to go with the simple approach suggested by Andy, but I'll surely keep these tools in mind when it comes to a bit more involved process management. Thanks.
-
sasuke over 13 yearsBTW, just wanted to confirm, given that Monit is GPL'ed tool, would it be OK if it was used for monitoring proprietary apps running on my box?
-
sasuke over 13 yearsYou really should I guess ;-) BTW, up-voted and accepted.
-
Gilles 'SO- stop being evil' over 13 years@sasuke: The GPL doesn't put any restriction on what you can use the program for. In fact it only comes into play if you distribute GPL material.
-
sasuke over 13 yearsAh, got that. Mucho appreciated. :-)
-
Ian Purton over 12 yearsYou may also want to look at using crontab to monitor your process. This script will also survice a reboot. servermonitoringhq.com/blog/how_to_keep_a_job_running_in_linux