[Zope3-dev] problem with multiple instances of zope3 as daemon via init script on gentoo

Bernd Dorn zope-mailinglist at mopa.at
Wed Jan 11 09:42:50 EST 2006


On 11.01.2006, at 14:27, Jim Washington wrote:

> Bernd Dorn wrote:
>
>> hi all
>>
>> i have two init scripts (see below) which start a zope3 instance
>> this works fine if i start one of them, but if i try to start the   
>> second, the following message appears
>>
>> * Starting Zope in /home/zope1/timetables ...
>> WARNING! zdrun is managing a different program!
>> our program   = ['/home/zope1/timetables/bin/runzope']
>> daemon's args = ['/home/zope1/screens/bin/runzope']
>> daemon process already running; pid=10839
>>
>> seems that the pid of the other instance is taken, does anybody  
>> know  how to solve this
>> or is there another way to start zope3 as an unprivileged user?
>> as far as i know there is no effective-user directive in zope.conf  
>> as  in zope2
>>
> Does this script put a zdsock file in /etc/init.d?  I have noticed  
> that the zdsock file is created in the directory where zopectl is  
> called.  If this is what you are seeing, one solution might be to  
> do some cd statements (e.g., cd $INSTANCE_HOME) so that multiple  
> zdsock files are created, one for each instance.
>

thx, you brought me on the right track!

it is actually a problem with the default zdaemon.conf in zopeskel,  
where socket-name is just set to zdsock

this will be placed in the working directory, which in my case was  
the home directory of the user because of the "-" switch to su

so i added the following line to zdaemon.conf:

socket-name $DATADIR/zopectlsock, which this is the behavior of zope  
2 skel

i would say this is a bug, because instances created with  
mkzopeinstance can not be run in parallel
additionally with socket-name set to zdsock one is unable to run  
zopectl as root, because then the socket gets created in the home of  
root where the user the daemon is running on has no access. this  
leads to an access denied error.

the init script is now the same as with zope2, i can just call  
zopectl directly without suing to the zope user

i will fix this in the trunk

thx, bernd









More information about the Zope3-dev mailing list