Python 脚本崩溃后不重新启动
Python script does not restart after it crashes
我有一个 python 脚本,它正在做一些叫做 "python1.py" 的事情。有时因为连接问题,它崩溃了。我有另一个名为 "loop.py" 的脚本,它应该在第一个崩溃并重新启动时监视它。至此,重启失败。意思是,当出现异常时( IOError 或 WatsonException (我正在使用 Watson API ))脚本停止
python1.py 是这样的:
def mainfunction ():
a = randrange(0, 1)
Print (' my routine is doing something')
if a = 1 :
Print ('a = 1 ')
else :
Print (' a is not equals to 1')
mainfunction ()
另一个应该重新启动第一个脚本的脚本是这样的:
def loopApp():
while True :
try:
python1.mainfunction ()
except IOError :
print (' IOError y')
except WatsonException :
print (' Exception from watson API')
loopApp ()
python1.py 应该在每次异常发生时重新启动,但事实并非如此。
我找到了使用 python subprocess 的方法。它工作正常,我可以让期望工作。
def loopApp():
loop = 1
while loop == 1:
print ("wa_loop is starting")
try:
process = subprocess.call(['python', 'wa_dir_watch.py'])
except 'IOError':
print ("\nretrying after IOError")
continue
except KeyboardInterrupt:
print ("\nstopped by user Ctr+C")
quit()
loopApp()
我有一个 python 脚本,它正在做一些叫做 "python1.py" 的事情。有时因为连接问题,它崩溃了。我有另一个名为 "loop.py" 的脚本,它应该在第一个崩溃并重新启动时监视它。至此,重启失败。意思是,当出现异常时( IOError 或 WatsonException (我正在使用 Watson API ))脚本停止
python1.py 是这样的:
def mainfunction ():
a = randrange(0, 1)
Print (' my routine is doing something')
if a = 1 :
Print ('a = 1 ')
else :
Print (' a is not equals to 1')
mainfunction ()
另一个应该重新启动第一个脚本的脚本是这样的:
def loopApp():
while True :
try:
python1.mainfunction ()
except IOError :
print (' IOError y')
except WatsonException :
print (' Exception from watson API')
loopApp ()
python1.py 应该在每次异常发生时重新启动,但事实并非如此。
我找到了使用 python subprocess 的方法。它工作正常,我可以让期望工作。
def loopApp():
loop = 1
while loop == 1:
print ("wa_loop is starting")
try:
process = subprocess.call(['python', 'wa_dir_watch.py'])
except 'IOError':
print ("\nretrying after IOError")
continue
except KeyboardInterrupt:
print ("\nstopped by user Ctr+C")
quit()
loopApp()