On Sun, Mar 15, 2009 at 06:33:10AM -0700, Michael Blakeley wrote:
> Package: lsb-base
> Version: 3.2-20ubuntu4
> Severity: important   
> 
> Some rpm-based packages come with init scripts which cd to a
> specific directory before starting a service. But lsb-base init-functions
> always starts services with the current directory "/". This causes       
> startup problems for some services.                                      
> 
> The lsb-base package documents support for LSB 3.2, which reads:
> 
> http://refspecs.freestandards.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
>                                                                  
> 
> > Each conforming init script shall execute the commands in the file
> > /lib/lsb/init-functions in the current environment                
> 
> This is open to some interpretation, but I interpret "environment" to include
> the current working directory. However, lsb-base init-functions calls        
> start-stop-daemon, which always changes the current directory to root        
> (unless --chdir is supplied).                                                

'The commands in the file /lib/lsb/init-functions' are still executed in
the current environment, including the working directory...

> For better LSB 3.2 compatibility, I believe that start_daemon should
> supply "--chdir $PWD". I encountered this problem with ubuntu, but  
> I don't believe there are any significant differences vs the debian release.
> 
I OTOH think running daemons with whatever $PWD happens to be when
running the init script should *not* be the default behaviour.  Most
init scripts don't use cd, so the daemon would end up running with a
basically random working directory. (granted, they should chdir()
themselves, but most probably don't bother)

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to