万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Python3でバックグラウンドプロセスは無理かも

Toanadoをサーバ上で実行させようと思ったら、バックグラウンドプロセスでできない・・。
URL: http://webos-goodies.jp/archives/deploying_tornado_with_supervisord.html

supervisord使おうと思ったら、Python3に対応してなくて、
219行あたりにある

            #except select.error, err:
            except select.error as err:

をPython3.x用に変えてみたが・・・

Traceback (most recent call last):
  File "supervisor/supervisord.py", line 39, in <module>
    from supervisor.medusa import asyncore_25 as asyncore
ImportError: No module named supervisor.medusa

もう面倒なので、

http://stackoverflow.com/questions/1196074/starting-a-background-process-in-python

import os
os.spawnl(os.P_DETACH, 'some_log_running_command')

↑を行おうとしたら・・
下のエラー

Traceback (most recent call last):
  File "bgprocess.py", line 2, in <module>
    os.spawnl(os.P_DETACH, 'python facebook.py --port=3000')
AttributeError: 'module' object has no attribute 'P_DETACH'

すると、Python3ではsubprocess使えとのこと
http://docs.python.jp/3.3/library/subprocess.html

しかし、使ってみたがコンソールをサーバで閉じると動かなかった・・・

めんどくさくなったのでTornadoをPython2.x系で動くように現在最新の2系であるPython2.7.3入れなおし

wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz && tar -xvf Python-2.7.3.tgz
cd Python-2.7.3/
./configure -with-zlib=/usr/include -with-ssl --enable-shared --prefix=/home/uername/opt/pkgs/Python-2.7.3
make
sudo make altinstall

uernameは置き換える