On Fri, Jun 03, 2005 at 12:05:06PM +0300, Cesar Martinez Izquierdo wrote:
> El Viernes 03 Junio 2005 11:23, Steve Langasek escribió:
> > On Fri, Jun 03, 2005 at 07:26:28AM +0200, Christian Perrier wrote:
> > > Quoting Cesar Martinez Izquierdo ([EMAIL PROTECTED]):
> > > > Package: samba
> > > > Version: 3.0.14a-4
> > > > Severity: important
> > > > Tags: patch

> > > > The samba's logrotate file /etc/logrotate.d/samba
> > > > containsa a line like:

> > > >         postrotate
> > > >                 invoke-rc.d --quiet samba reload > /dev/null

> > > > This starts samba even if previously stopped/disabled (for instance, by
> > > > removing rc2.d link). I would suggest to test for the smbd.pid
> > > > pidfile, as follows:

> > > >From invoke-rc.d man page:

> > >       invoke-rc.d  itself  will  only  pay attention to the current
> > >        runlevel, and block any tries to start an init  script  in  a
> > >        runlevel  it is not configured to be started at.  Other poli‐
> > >        cies are implemented with the use of the policy-rc.d  helper,
> > >        and  are only available if /usr/sbin/policy-rc.d is installed
> > >        in the system.

> > > So, theoretically, as long as a given script is setup to NOT start in
> > > a given runlevel, invoke-rc.d will NOT start it.

> > > However, I don't really know how this works exactly as the invoke-rc.d
> > > man page is a bit obscure to me.

> > > Steve, Eloy, do you have more clues than me on that issue?

> > I'm not sure how this is a bug at all.  "invoke-rc.d samba reload" will
> > call /etc/init.d/samba reload:

> >         reload)
> >                 echo -n "Reloading /etc/samba/smb.conf (smbd only)"
> >                 start-stop-daemon --stop --signal HUP --pidfile $SMBDPID
> >
> >                 echo "."
> >                 ;;

> > Running this on a system that doesn't have an active smbd gives me:

> > $ /usr/sbin/invoke-rc.d samba reload
> > Reloading /etc/samba/smb.conf (smbd only)No process in pidfile
> > /var/run/samba/smbd.pid' found running; none killed.
> > .
> > $

> > So I really don't think the proposed change is necessary.

> I was also looking more closely at the files and I just realize that it is 
> not 
> so similar to #310535 as I though. Sorry about the misleading information.

> Now I realize that you made a samba upload yesterday, and I updated my system 
> yesterday.

> I just installed the version in sarge again, and smbd and nmbd were started 
> again (they should not). Then I stoped samba, I upgraded again to sid, and 
> smbd and nmbd were started again. So it's not a problem with logrotate, but 
> with the upgrades.

> However, I've check samba.postinst and I don't see anything wrong on it 
> (assuming that invoke-rc.d works properly):

> if [ -x "/etc/init.d/samba" ]; then
>         update-rc.d samba defaults 20 19 >/dev/null
>         if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
>                 invoke-rc.d samba start || exit 0
>         else
>                 /etc/init.d/samba start || exit 0
>         fi
> fi

> So maybe there is some bug in invoke-rc.d... but I was also having a look to 
> invoke-rc.d and I didn't find anything wrong on it (it is a quite complex 
> script, though).

If you've done what Christian describes in his mail and disabled samba by
*removing* the start symlink for the runlevel, instead of *replacing* it
with a kill symlink, then the policy for that runlevel is undefined and
invoke-rc.d has no way to know that the daemon should not be started.  If
you want the package to not start the daemon in your runlevel, you need to
have a K??samba symlink in the runlevel config.

-- 
Steve Langasek
postmodern programmer

Attachment: signature.asc
Description: Digital signature

Reply via email to