Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Unwanted SSH child survives after ssh session

by cmv (Chaplain)
on Aug 11, 2009 at 20:03 UTC ( #787748=perlquestion: print w/replies, xml ) Need Help??
cmv has asked for the wisdom of the Perl Monks concerning the following question:


Running the following ssh command locally:

ssh user@host tail -f /etc/passwd

Results in the following 2 processes on the far end machine (note PGID & SID):

UID PID PPID PGID SID CMD root 22409 4763 4763 4763 sshd -f /etc/ssh/sshd_config -R user 22411 22409 22411 22411 tail -f /etc/passwd

As expected, when I ctrl-c out of the ssh command on the originating local computer, I loose the sshd_config process at the far end, but the tail -f child process survives and looks like this:

UID PID PPID PGID SID CMD user 22411 1 22411 22411 tail -f /etc/passwd

I would like for the child process to die when I ctrl-c out of the ssh command. How can I do this?

Put another way, how can I get the child process (tail -f) to be in the same process group as the parent (sshd_config)?

My first thought was to use perl's setpgrp command: setpgrp(PID, PGRP) where:

PID - Child's process ID PGRP - Parents process group

However, this seems to always fail on SunOS. Probably because of what is described in the setpgrp camel book description:

Sets the current process group for the specified PID, 0 for the current process. Will produce a fatal error if used on a machine that doesn't implement POSIX setpgid(2) or BSD setpgrp(2). If the arguments are omitted, it defaults to 0,0 . Note that the BSD 4.2 version of setpgrp does not accept any arguments, so only setpgrp(0,0) is portable. See also POSIX::setsid() .

Any help is appreciated.



Replies are listed 'Best First'.
Re: Unwanted SSH child survives after ssh session
by almut (Canon) on Aug 11, 2009 at 21:05 UTC

    I think this is an ssh issue... Try  ssh -t user@host tail -f /etc/passwd

      almut++ That was it. The -t option works great! Thanks.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://787748]
Approved by planetscape
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (6)
As of 2017-07-23 17:46 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (347 votes). Check out past polls.