使用Fabric构建EC2需要启动Twisted服务器至少3倍

时间:2012-04-16 01:43:31

标签: python twisted fabric

我正在使用fabric构建EC2服务器,并希望为pyapns启动Twisted服务器。我尝试了几种不同的启动脚本的方法 - 只需调用sudo(...),即可创建init.d脚本。

命令可以解决这个问题:

/usr/local/bin/twistd -r epoll -u www-data -g www-data -l /var/log/apnslistener.log --pidfile=/var/run/apnslistener.pid web --class=pyapns.server.APNSServer --port=7077 -l /var/log/pyapns.log

使用结构时,无论是通过sudo(...)直接调用上面的行还是使用sudo启动init.d脚本,该过程实际上都不会成功启动。如果我登录到该框并直接启动它,则该过程将继续启动。

我已经让它通过结构工作,但我必须在它坚持之前启动init.d脚本 3次。使用--spew进行记录不会显示任何异常。如果我不运行3次,甚至永远不会创建.pid文件。

我很遗憾在哪里开始弄清楚为什么会发生这种情况,而且3x黑客一直在100%工作。有任何想法吗?谢谢!

修改

/var/log/apnslistener.log的输出如下。请注意服务器如何仅在第3次成功启动。

2012-04-16 01:52:08+0000 [-] Log opened.
2012-04-16 01:52:08+0000 [-] twistd 12.0.0 (/usr/bin/python 2.7.2) starting up.
2012-04-16 01:52:08+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2012-04-16 01:52:09+0000 [-] Log opened.
2012-04-16 01:52:09+0000 [-] twistd 12.0.0 (/usr/bin/python 2.7.2) starting up.
2012-04-16 01:52:09+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2012-04-16 01:52:10+0000 [-] Log opened.
2012-04-16 01:52:10+0000 [-] twistd 12.0.0 (/usr/bin/python 2.7.2) starting up.
2012-04-16 01:52:10+0000 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2012-04-16 01:52:10+0000 [-] Site starting on 7077
2012-04-16 01:52:10+0000 [-] Starting factory <twisted.web.server.Site instance at 0x1c6dc20>
2012-04-16 01:52:10+0000 [-] set uid/gid 33/33
2012-04-16 01:52:12+0000 [HTTPChannel,0,127.0.0.1] APNSService __init__

1 个答案:

答案 0 :(得分:2)

在您的用例文档中

Here's a section。它与sudo无关,而与默认调用的pty设置有关。常见问题解答中的更多信息。