Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: recovering zombie process
- X-seq: zsh-users 11125
- From: "Brian K. White" <brian@xxxxxxxxx>
- To: <zsh-users@xxxxxxxxxx>
- Subject: Re: recovering zombie process
- Date: Wed, 17 Jan 2007 02:14:22 -0500
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- Organization: Aljex Software
- References: <20070116231141.GC21799@sen> <00d801c739d5$7ce4b890$0901a8c0@venti> <20070117035048.GB10583@xxxxxxxxxxxxxxxxxxx>
----- Original Message ----- 
From: "Vincent Lefevre" <vincent@xxxxxxxxxx>
To: <zsh-users@xxxxxxxxxx>
Sent: Tuesday, January 16, 2007 10:50 PM
Subject: Re: recovering zombie process
On 2007-01-16 20:19:08 -0500, Brian K. White wrote:
2) freeware tty multiplexing/cloning software
   ttysnoop
   screen / mscreen
Is there a way to use them transparently?
Except for screen that is exactly how they are designed to work.
They each work by different means though, resulting in different levels of 
perfection of transparency.
DoubleVision is the best, it's a kernel module and hooks in somewhere in the 
kernel tty layer.
And it impliments terminfo based terminal translation so a users on 
dissimilar terminals can dv each other and the escape codes and keystrokes 
all get translated so the two terminals stay sensible.
It's impractical to use on linux though because your kernel is always a 
moving target not supported by the module.
It's wonderful on commercial OS's where you have the same kernel as everyone 
else, or at least the interface for kernel modules is documented and very 
rarely changed, and very very very rarely changed in a way that breaks 
backwards compatibility.
ttysnoop works by replacing /bin/login
Thats both good and bad.
The good is:
 safer, all userland, no messing with your kernel.
 safer, can be used on some services, or even individual ttys, while others 
are not touched.
 doesn't require rebootig or disrupting the box to put in or take out.
The bad is:
more of a pain in the neck to get it in place since each service that might 
possibly generate a tty needs to be dealt with seperately. Even if you 
actually replace /bin/login instead of figuring out the individual service 
configurations like adding -L /some/program to telnetd, most services can be 
configured not to use /bin/login, and so you still have to go tell them to 
use it.
Some services simply can't use ttysnoop no matter what. FacetWin (commercial 
terminal emulator that only talks to it's proprietary server daemon) does 
not use any standalone login and does not have any option to do so, and so 
there is no place to inject ttysnoop. But in most cases, if you're using 
FacetWin instead of telnet or openssh, then you are also using 
sco,sun,aix,hpux,etc.. where doublevision is practical.
ttysnoop has other failings though. it's very crude, does no terminal type 
translation, and hasn't been maintained in years.
There are patched versions to support unix98 pty's but so far I don't think 
any are 100% yet. There is a known bug where, on unix98 pty's (2.6 kernels), 
ttysnoop fails to update utmp/wtmp when closing some sessions and so w/who 
etc show users logged in who aren't.
I've never used peek. If I'm gonna pay, DoubleVision is less than half the 
price and works at a lower level, and works awsome, and is proven up the 
wazoo since most of my sco customers over the years have gotten it.
For the price of peek on just one box, (unlimited version, which I'd need 
since my user count on any one of several boxes is over double than peek's 
next highest user count.) I could probably pay a programmer to nail down 
ttysnoop. I don't really have dissimilar terminals that much any more, at 
least not enough that this limitation would be insufferable.
I'm still in the process of really figuring out if ttysnoop can work out ok 
or not though. We definitely need something, be it 
doublevision,ttysnoop,peek,other...
We use it a lot for customer support and training.
It's useful for some sysadmin (both os and db type) tasks too but I think 
screen can be used for those.
We'd use dv to connect to a console tty before doing some critical procedure 
that would be ReallyBad(tm) if it crashed in the middle. If the net 
connection or terminal emulator barfs, just reconnect. The app kept running 
on the console. For that matter, if you can't reconnect you can actually 
drive to the site and access that console directly. We can probably just use 
screen for that.
By rights, these processes should have all received a hangup when the
parent went away.
If the parent has crashed, there's no hangup.
Then shouldn't the next higher parent do it?
If it were a telnet session that'd be telnetd. In the case of an xterm I'm 
not sure where that responsibility should lie.
X? window manager? the shell that ran startx or xdm? init? the kernel?
Brian K. White  --  brian@xxxxxxxxx  --  http://www.aljex.com/bkw/
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro  BBx    Linux  SCO  FreeBSD    #callahans  Satriani  Filk!
Messages sorted by:
Reverse Date,
Date,
Thread,
Author