1

我有一个涉及自动更新的 Twisted 应用程序。为了让它在更新后自动重启,我设置了一个后反应器关闭事件来重新启动应用程序,如下所示:

reactor.addSystemEventTrigger('after', 'shutdown', os.execv, executable, args)
reactor.callFromThread(reactor.stop)

这在 Windows 上运行良好,但在 OS X 上,该事件永远不会被调用。日志显示参数是正确的,并且在 Twisted 之外使用相同的参数运行 os.execv os.execv('/usr/bin/open', ['/usr/bin/open', '-n', '/Applications/MyApp.app'])- 工作正常。

我在这里能错过什么?

4

1 回答 1

1

事实证明,问题出在 execv 调用上,而不是 Twisted 事件关闭。我将命令更改为在 .app 包中调用我的可执行文件,而不是使用 open 并让它工作。

于 2013-02-05T23:37:17.333 回答