Restarting scripts
Ron Griswold
RGriswold at Rioting.com
Mon Jan 16 20:51:03 EST 2006
I gave this a shot but haven't had much luck with it. When I try
os.execlp I get an error saying unknown file or directory. Whether this
is in reference to Python or my script I don't know, however python is
in my system's path variable and I'm running the script from the dir it
is located in.
At someone else's suggestion I tried using a loader script with
os.spawnv using the os.P_WAIT flag. Unfortunatly this exits right away
(presumably never starting my server).
I also tried subprocess.Popen and then calling child.wait(). This sent
me into a loop of exceptions saying that the socket the server is
opening is already in use (even on the first try).
Does anyone know of a nice reliable app that already does this for you?
Open source preferably.
Ron Griswold
Character TD
R!OT Pictures
rgriswold at rioting.com
-----Original Message-----
From: python-list-bounces+rgriswold=rioting.com at python.org
[mailto:python-list-bounces+rgriswold=rioting.com at python.org] On Behalf
Of Peter Hansen
Sent: Monday, January 16, 2006 5:40 PM
To: python-list at python.org
Subject: Re: Restarting scripts
Brian Cole wrote:
> If everything dies by a Python exception...
>
> if __name__ == '__main__':
> try:
> main(sys.argv)
> except:
> os.execlp("python", "python", sys.argv)
>
> Pretty nasty peice of code, but it works well for restarting your
script.
Noting that sys.exit() and possibly several other things can "raise
SystemExit" and while it is a subclass of Exception (and gets caught by
the above), it is usually considered a clean and intentional exit and
changing the above to do this is probably best:
try:
main(sys.argv)
except SystemExit:
raise
except:
os.execlp(.... etc etc
-Peter
--
http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list