Как упаковать демон Python с помощью setuptools - PullRequest
8 голосов
/ 15 марта 2012

Как упаковать приложение Python с помощью setuptools, чтобы при его установке (например, через setup.py или pip) оно помещало скрипт демона в соответствующее место, запускало его и отмечало, что оно автоматически запускается во время загрузки?

В моем случае мой код работает только с Linux, поэтому меня интересует только установка демона в среде Linux (в частности, в Ubuntu).

Я обнаружил несколько posts , описывающих , как легко создавать демоны Python, но я не могу найти ничего, описывающего, как вы устанавливаете их в производственной среде, чтобы они рассматривались как любыедругой обычный демон или служба.

Я знаю, что Ubuntu и некоторые другие дистрибутивы хранят свои демоны в /etc/init.d, и я знаю, как использовать setuptools для копирования файлов в определенные места в файловой системе, так же как и онМожно ли безопасно скопировать или создать символическую ссылку на мой скрипт в /etc/init.d, а затем запустить chkconfig, чтобы установить время выполнения, или есть более безопасный способ установки демонов, не зависящий от распространения?

1 Ответ

3 голосов
/ 15 марта 2012

Это было бы лучше сделать, создав соответствующий пакет для дистрибутива (в случае Ubuntu, .deb), так как вы не можете гарантировать расположение скриптов запуска в дистрибутивах.Например, arch linux использует /etc/rc.d/.Кроме того, копирование в такие места потребует root-доступа (что я не считаю обязательным для установки пакетов Python) и может не быть легко обратимым при удалении.

Я бы предложил создать обычный setupttoolsустановки, а затем упакуйте его в deb с ссылкой на /etc/init.d.

...