Выскочка для pydoc веб-сервера

Я пытаюсь использовать upstart, чтобы веб-сервер pydoc для разрабатываемого пакета всегда работал. Если я запускаю его из командной строки:

pydoc -p 7464 /some_path/my_python_package

он работает нормально, и переход к localhost:7464/my_python_package отображает документацию. Однако, если я помещу это в сценарий выскочки, например,

start on startup
start on runlevel [2,3,4,5]
stop on runlevel [0,1,6]

script
    pydoc -p 7464 /some_path/my_python_package
end script

затем, когда я открываю браузер в localhost:7464/my_python_package, я получаю следующее:

no Python documentation found for 'my_python_package' 

Обратите внимание, что localhost:7464 показывает все стандартные пакеты Python как нормальные, поэтому кажется, что выскочка не анализирует путь правильно.

Я попытался использовать export PYTHONPATH='/some_path' и изменить строку исполнения на pydoc -p 7464 $PYTHONPATH/my_python_package, но это тоже не сработало.

1
задан 23 March 2012 в 15:49

1 ответ

Синтаксис, который вы указали в этом задании, неверен:

  • у вас есть несколько разделов 'start on'.
  • будет рассмотрена последняя строфа 'start on', но ваша недействительна из-за использования запятых между уровнями выполнения (ваша 'stop on' недействительна по той же причине).

Вы хотите что-то вроде этого:

start on runlevel [2345]
stop on runlevel [016]

script
    pydoc -p 7464 /some_path/my_python_package
end script

Обратите внимание, что с Upstart версии 0.9.7 и выше (другими словами Ubuntu Natty или новее - см. https: // wiki .ubuntu.com / NattyNarwhal / TechnicalOverviewUpstart ), есть новая команда init-checkconf, которая проверит ваш скрипт на наличие синтаксических ошибок. Использование простое:

$ init-checkconf myjob.conf

Обратите внимание, что вы должны запускать init-checkconf как ваш пользователь ( не root).

Кроме того, вы запускаете это как системное задание (файл задания находится в / etc / init /?). Если да, действительно ли вам нужен сервис для запуска с правами root? Если нет, см .:

http://upstart.ubuntu.com/cookbook/#run-a-job-as-a-different-user

, если это вам действительно нужно для запуска этой службы от имени пользователя root?

Наконец, я настоятельно рекомендую взглянуть на остальную часть Поваренной книги Upstart:

0
ответ дан 23 March 2012 в 15:49

Другие вопросы по тегам:

Похожие вопросы: