【发布时间】:2011-08-24 21:11:07
【问题描述】:
我有一个关于信号以及在运行 sql 命令时如何处理它们的问题。特别是,我有一个作为进程运行的 python 脚本,其中正在创建另一个进程。之后,正在运行数据库检查,并在该数据库内检查表列 NULLEGE 属性正在被更改。我必须说这张桌子相当大……就像 GB 一样大,而且它变得更大。 当我向主进程(运行数据库检查的那个)发送一个术语信号时,在该主进程中创建的第二个进程也应该终止。好吧......这在任何时候都会发生,减去数据库检查正在执行 NULLEGE 属性更改时。当这完成时,主进程终止,但不知何故,信号处理程序被忽略(不进入处理信号的函数),因此没有 SIGTERM 被发送到在主进程内创建的进程。这就是我被困在一个进程中的原因。
我的问题:有没有办法在运行数据库检查时阻止信号(如排队),或者是否有另一种方法可以使用 python 将 TERM 信号发送到第二个进程?我已经成功更改了启动 python 脚本作为进程的 bash 脚本,以在主进程终止后进行检查并将 SIGTERM 发送到左侧进程......但我不希望以这种方式处理它。
或者有没有办法中断数据库检查?
ps:对于数据库处理,sqlalchemy 正在 ubuntu linux 上的 python 2.6 下使用。
【问题讨论】:
标签: python mysql linux sqlalchemy signals