Thanos Tsouanas <[EMAIL PROTECTED]> writes: > On Sun, Jul 24, 2005 at 12:51:17PM +0300, Thanos Tsouanas wrote: >> On Sun, Jul 24, 2005 at 02:43:44AM -0700, Harlin Seritt wrote: >> > I have a remote linux server where I can only access it via ssh. I have >> > a script that I need to have run all the time. I run like so: > Since you want it to run all the time, check cron(8) as well. > Maybe you would like to write a small script, executing script.py if it > is not already running.
Cron will restart the process at regular intervals, meaning you have to have a mechanism in place to deal with multiple copies running. It also allows for periods when no process is running. There are usually better solutions than this, but they are system-dependent. On SysV like systems - which includes most (all?) Linux systems - you can add an entry to inittab that will cause a command to be restarted should it ever die. On BSD based systems, the same functionality is available via /etc/ttys. It's not very well documented, though. The reason you don't hear much about these is because it's normal for a Unix app to be able to deal with such issues by itself. In python, this consists of a loop like: while not_time_to_exit: try: run_main() except: log_problem() I.e. - you catch any otherwise uncaught exceptions, and log them so that you can fix whatever caused the problem later. This requires that you run_main resets the environment properly to avoid problems from leftover data in the python program. Of course, one way of doing that is relaunching the python program. not_time_to_exit depends on your environment. Proper signal handling is usually the way to deal with this. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list