On 02/15/2010 09:47 AM, Daniel P. Berrange wrote:
On Mon, Feb 15, 2010 at 09:39:31AM -0500, Cole Robinson wrote:
> On 02/15/2010 06:11 AM, Daniel P. Berrange wrote:
>> On Fri, Feb 12, 2010 at 10:32:17AM -0500, Cole Robinson wrote:
>>> This ugly thing is a shell script to detect availability of
>>> the -q option for 'nc': debian and suse based distros need this
>>> flag to ensure the remote nc will exit on EOF, so it will go away
>>> when we close the tunnel. If it doesn't go away, a useless 'nc'
>>> process is left sitting on the remote host.
>>>
>>> Fedora's 'nc' doesn't have this option, so we can't
blindly pass -q.
>>> More info here:
>>
>> I don't really like this approach. Shouldn't it be sufficient to
>> just explicit SIGKILL the ssh client, rather than relying on the
>> exit-on-EOF behaviour of nc.
>>
>
> kill() helps prevent virt-manager from hanging, but it doesn't address the
> dangling 'nc' process on the remote host that requires -q. Every connection
> will leave an 'nc' process hanging.
It does when I try it. Killing the SSH client connection results in SIGHUP
for the process running on the remote host & nc exits on SIGHUP.
Connecting to a debian system? I just tried using the attached patch on top of
latest git (not my patches):
Running virsh --connect URI to a debian lenny system, then invoking 'quit',
leaves 'nc -U' processes running. 'quit' doesn't hang like it does
with
current git, but the nc process isn't closed on the remote host.
Any recommendations?
Thanks,
Cole