[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