On Sat, Jan 12, 2008, mouss wrote: >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. If you use ``kill -0 pid'' it shouldn't affect the running process, and will return success ($? = 0) if the process is running, and fail otherwise. A fairly standard way of checking things like this is: pidfile=/var/run/progname.pid progname_signal() { [ -f $progname_pidfile ] && kill -$1 `cat $progname_pidfile` } if progname_signal 0 then echo is running else echo not running fi Bill -- INTERNET: bill at celestial.com Bill Campbell; Celestial Software LLC URL: http://www.celestial.com/ PO Box 820; 6641 E. Mercer Way FAX: (206) 232-9186 Mercer Island, WA 98040-0820; (206) 236-1676 "If taxation without consent is robbery, the United States government has never had, has not now, and is never likely to have, a single honest dollar in its treasury." -- Lysander Spooner, Letter to Grover Cleveland 1886