2012-04-16 4 views
2

Я создаю сервер EC2 с использованием ткани и хочу запустить витой сервер для пиапнов. Я пробовал несколько разных способов запуска скрипта - просто вызывая sudo(...), чтобы создать сценарий init.d.EC2 build with Fabric требует запуска Закрученный сервер как минимум 3x

Команда работает на что-то вроде этого:

/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 никогда не создается.

Я потерялся относительно того, где начать выяснять, почему это происходит, а 3х-хак работает на 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__ 
+0

Есть ли выход за лог-файл, т. Е. На stderr? Я не знаю достаточно о ткани, чтобы сказать, где искать это. Когда вы говорите «запустить его напрямую», вы имеете в виду запуск сценария init.d или вызов командной строки, которая начинается с '/ usr/local/bin/twistd'? – Glyph

ответ

2

Here's a section в документации для вашего использования. Это связано не с sudo, а с настройками pty по умолчанию. Дополнительная информация в FAQ.

+1

Я искал это тоже ... :) Блестяще, спасибо! –