Les Mikesell wrote:
Jerry Geis wrote:
Is there a command that will monitor a process for exiting (crash or normal exit) and then execute another command based on the said process no longer being active?
Or is there a "wrapper" command that runs a process and when that process exists due to crashing or just exiting normally) that another process can be run.
Why not use a shell script as a wrapper? If you don't put something in the background with an & on the line, the next line will execute when/if the program started on the current line exits. There are nearly always other copies of the shell running anyway so you get shared-text efficiency. If you just want to keep restarting the same program, something like this should run forever.
while : do my_program done
This has two issues (at least): - if the program is a daemon, it returns immediately, so the scrpit will try to start the program again and again - if the script gets a signal, it will be killed. back to start.
also, whatever method is used, one must not spend cpu restarting a program that crashes after 2 seconds (thus looping on restart). if the program keeps crashing, an alert should be sent (and the program fixed or removed).