我有一个涉及自动更新的Twisted应用程序。为了让它在更新后自动重启,我设置了一个后反应堆关闭事件,它重新生成应用程序,如下所示:
reactor.addSystemEventTrigger('after', 'shutdown', os.execv, executable, args)
reactor.callFromThread(reactor.stop)
这在Windows上工作正常,但在OS X上,事件永远不会被调用。日志显示参数是正确的,并且在Twisted - os.execv('/usr/bin/open', ['/usr/bin/open', '-n', '/Applications/MyApp.app'])
之外运行具有相同参数的os.execv - 工作正常。
我可以在这里找到什么?
答案 0 :(得分:1)
事实证明问题在于execv调用,而不是Twisted事件关闭..我更改了命令以在.app包中调用我的可执行文件而不是使用open并使其正常工作。