[Zope-dev] Xron on linux: Dispatcher thread stops after a while
Steve Alexander
steve@cat-box.net
Mon, 28 May 2001 09:48:48 +0100
Homan Els wrote:
> ZOPE 2.2.2 , Xron -0-0-9, Python 1.5.2
>
> Hi Steve,
>
> I am running Zope under linux (Suse 6.4). And I would like to use
> Xron. But, I can not get it running.
> I did read your email : Xron on linux. And therefore I would like to
> know, how you did manage to use Xron.
> I have the general Xron problem, that the zope-server is not responding
> anymore after the installation of Xron.
What user do you run Zope as?
There's a problem with Linux where if you start off a thread, then
change uid in the main thread, the thread that you spawned before will
remain in the old uid, or unexpected things will happen.
This is what Zope does when you run it as root. Zope initializes its
products as root, and then changes to user "nobody".
You can find out more about this if you search for discussions about
BIND and Linux.
The solution for Zope and Xron is to run Zope as user "nobody". You
might need to chown the files in your zope directory.
Note that you will not be able to run Zope on a privileged port (below
1024) if you do this.
The alternative is to hack Zope so that it calls Xron after it has
changed use to "nobody", so Xron can safely spawn its thread as user
"nobody". If you do this, you'll be able to run zope as the root user,
and Zope + Xron will work running on port 80.
--
Steve Alexander
Software Engineer
Cat-Box limited