此脚本按预定的时间间隔检查FTP和下载文件。在
如果正在运行,向它发送正确的信号(SIGUSR1)应该使它优雅地关闭,等待checkAll完成。在
class ScheduledFtpCheck(FtpCheck, Scheduler):
def __init__(self):
...
self.aborted, self.checking = False, False
def abort(self, *args, **kwargs):
self.aborted = True
if not self.checking: self.quit()
def checkAll(self):
if not self.isAborted():
self.checking = True
self.checkAll()
self.checking = False
if self.aborted: self.quit()
...
def main():
sch = ScheduledFtpCheck()
signal.signal(signal.SIGUSR1, sch.abort)
sch.start()
问题是我接到一个中断的系统调用ftplib.FTP文件过早退出:
^{pr2}$所以我的脚本正确地处理了信号,但是调度检查没有
为什么?我怎样才能防止呢?在
谢谢你的支持
我找到了解决办法:
在一个单独的线程中运行ftp进程将它与主进程信号隔离开来
相关问题 更多 >
编程相关推荐