Python 使用结构的EC2构建要求启动Twisted服务器至少3倍

Python 使用结构的EC2构建要求启动Twisted服务器至少3倍,python,twisted,fabric,Python,Twisted,Fabric,我正在使用fabric构建一个EC2服务器,并希望为Pyans启动一个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.APN

我正在使用fabric构建一个EC2服务器,并希望为Pyans启动一个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
使用fabric时,无论是通过
sudo(…)
直接调用上面的行,还是使用
sudo
启动
init.d
脚本,进程实际上都不会成功启动。如果我登录到该框并直接启动它,则进程将保持启动状态

我已经让它通过fabric工作,但我必须启动init.d脚本3次,然后它才能继续工作。使用
--spew
进行日志记录不会显示异常。如果我不运行3次,即使是.pid文件也不会被创建

我不知道从哪里开始弄清楚为什么会发生这种情况,而3x黑客100%始终如一地工作。有什么想法吗?谢谢

编辑

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

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__
2012-04-16 01:52:08+0000[-]日志已打开。
2012-04-16 01:52:08+0000[-]twistd12.0.0(/usr/bin/python2.7.2)正在启动。
2012-04-16 01:52:08+0000[-]反应堆等级:twisted.internet.epollreactor.epollreactor。
2012-04-16 01:52:09+0000[-]日志已打开。
2012-04-16 01:52:09+0000[-]twistd12.0.0(/usr/bin/python2.7.2)正在启动。
2012-04-16 01:52:09+0000[-]反应堆等级:twisted.internet.epollreactor.epollreactor。
2012-04-16 01:52:10+0000[-]日志已打开。
2012-04-16 01:52:10+0000[-]twistd12.0.0(/usr/bin/python2.7.2)正在启动。
2012-04-16 01:52:10+0000[-]反应堆等级:twisted.internet.epollreactor.epollreactor。
2012-04-16 01:52:10+0000[-]站点从7077开始
2012-04-16 01:52:10+0000[-]启动工厂
2012-04-16 01:52:10+0000[-]设置uid/gid 33/33
2012-04-16 01:52:12+0000[HTTPChannel,0127.0.0.1]APNService初始化__

在您的用例文档中。它与sudo无关,而是与默认调用的pty设置有关。更多信息请参见常见问题解答。

日志文件之外是否有任何输出,即在stderr上?我对布料的了解还不够,不能说在哪里可以找到这个。当您说“直接启动它”时,您是指运行init.d脚本还是调用以
/usr/local/bin/twistd
开头的命令行?