ZEO 版の Plone で iPython を使ったりデバッグモードで起動したり
以前、Plone の Shell で iPython を使う方法やデバッグモードで起動する方法を書いてたけど、どれも Standalone 版でしかできてなくて、ZEO 版の方ではできてなかった。
これができるのとできないのとでは開発の作業効率が全然違ってくるので、なんとかならんもんかと改めて探してみたらうまいことできたのでメモ。
まずは iPython
iPython をインストールして zope 用の profile を設定するまでは前回と同じ。
んで、ZEO 版では iPython を起動する前にまず zeoserver を起動せにゃならんらしい。じゃないと ZODB にアクセスできませんけどって怒られる。
~/Plone-3.1/zeocluster/bin/zeoserver start
んであとはだいたい同じ。
~/Plone-3.1/zeocluster/bin/client1 shell ~/Plone-3.1/Python-2.4/bin/ipython -p zope
client1 じゃなくて client2 でもいける。
つぎはデバッグモード
デバッグモードも iPython のときと同じようにまず zeoserver を起動する必要があるらしい。
~/Plone-3.1/zeocluster/bin/zeoserver start
んでこんな感じ。
~/Plone-3.1/zeocluster/bin/plonectl fg cleints
これは一応 client1 と client2 の両方を利用するようなコマンドらしいけど、実際最初は client1 しか起動してなくて、Ctrl-c で client1 を終了したあとに client2 が起動するような格好になってるっぽい。なので、おそらく clients じゃなくて client1 にしてもやってることは一緒だと思う。こんな風に。
~/Plone-3.1/zeocluster/bin/plonectl fg client1
んで、例によって client1 でもいける。
~/Plone-3.1/zeocluster/bin/client1 fg
ただ、コレ試したときなぜか client2 で fg ってした場合は、リクエスト待ち状態にはなるけどブラウザからアクセスできなかった。いやただポート番号が違うとかそんなことかもしれんのだけど。。
あと、clusterstatus.sh を使うと client や zeoserver の状態を確認できる。こんな感じで。
<moqada@hogi>$ ~/Plone-3.1/zeocluster/bin/clusterstatus.sh zeoserver: program running; pid=2209 client1: daemon manager not running client2: daemon manager not running