From: Andrew Masterson on
-----Original Message-----
From: samba-bounces(a)lists.samba.org
[mailto:samba-bounces(a)lists.samba.org] On Behalf Of Jeremy Allison
Sent: Wednesday, August 11, 2010 11:16 AM
To: David Roid
Cc: samba(a)lists.samba.org
Subject: Re: [Samba] HOWTO close session(s) to a specific share from
samba server side?

On Wed, Aug 11, 2010 at 04:18:48PM +0800, David Roid wrote:
> Hello list,
>
> I noticed that connections from the same client to different shares
have got
> the same pid on samba server, please refer to the out put below:
>
> # net status shares
> Service pid machine Connected at
> -------------------------------------------------------
> foo 1751 realone Thu Aug 12 07:38:49 2010
> bar 1751 realone Thu Aug 12 07:39:10 2010
>
> It seems there is no way to close session(s) to a specify share,
without
> hurting other stuff:
>
> 1. "kill -9" obvious is not an option, it will kill everything of that
pid.
> 2. "net rap session close <client>", it accepts an argument specifying
the
> client name. In this case I still lose both sessions.
>
> What I need here is a way to close sessions, no matter where they are
from,
> to a specific share; is there a fine grained command to do this?

smbcontrol close-share. Check the man page.

Jeremy.
---------


Unfortunately that closes the entire share, not an individual connection
to that share. I have fought with this before unless I'm missing
something.

Unlocking files is another impossible task unless (I think) you are
brave enough to edit the locks.tdb file.

I generally just script killing the PIDs as there's no other real way to
unlock stuff. The client end is usually robust enough to deal with it
unless it needs a stateful connection (which is usually database only
thing).

-=Andrew
--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba
From: Andrew Masterson on
> > Unfortunately that closes the entire share, not an individual
connection
> > to that share. I have fought with this before unless I'm missing
> > something.

> If you send that to the target "smbd", yes. You should be
> able to send that to individual service smbds as well.

So something like

smbcontrol `smbstatus -p | grep xxxxx | awk {'print$1'}` close-share
XXXXX

should script nicely. I never thought of doing that...you learn
something new every day.

> > Unlocking files is another impossible task unless (I think) you are
> > brave enough to edit the locks.tdb file.

> Have you looked at "reset on zero vc = yes"?

There are many situations where client Windoze applications lock files
on the network, and you need to unlock them before proceeding with an
update (that can, of course, only be run from another Windoze box).
This can be from machines that don't clear their locks, go to sleep,
people that are logged in and don't log out, whatever the reason. The
only way that I know of with smbd is to kill the process IDs locking the
files before proceeding with the updates.

The option you mention above seems more about machines cleaning up their
dead connections (which is definitely something I need to look into - is
there a reason this is off by default?)

-=Andrew

--
To unsubscribe from this list go to the following URL and read the
instructions: https://lists.samba.org/mailman/options/samba