Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Forking SSH via Apache

by packetstormer (Monk)
on Feb 11, 2014 at 13:59 UTC ( #1074421=perlquestion: print w/replies, xml ) Need Help??
packetstormer has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks

I have been looking at this for too long, hopefully someone can spot what is going on!

I have an inhouse system where I need to have users click a link and start a reverse SSH tunnel. The script itself is simple and works. Running it from shell and it connects with no STDOUT. However, when I try to fork it from a web page the page hangs (like it would if I wasn't forking) and stays there forever. The process starts fine, but the page doesn't redirect.

..... my $port = $cgi->param("port"); if ( $port ) { my $cmd = "ssh -n -F -R $port:localhost:22 -p 80"; my $pid = fork(); if ( $pid == 0 ) { exec($cmd) } } print $cgi->redirect("");

If I run this from the command line passing in the port the command executes. However, from the webpage, although the command does execute, the page stays there and doesn't redirect.
I have tried adding stdout and stderr redirection on the command but the same problem remains.

Any advise would be great!

Replies are listed 'Best First'.
Re: Forking SSH via Apache
by Anonymous Monk on Feb 11, 2014 at 14:03 UTC
Re: Forking SSH via Apache
by Anonymous Monk on Feb 11, 2014 at 19:00 UTC
    There could also be fairly-serious problems lurking if many copies of your web page get launched at the very same time. It is sometimes difficult to actually have a web-page "do something" like this. You can't control how many copies may be started at once, and remember also that HTTP is "stateless." Finally, bear in mind that Apache is usually run as nobody, with no permissions to do much of anything at all, and that there's a good reason for that . . . Maybe re-think this idea.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2018-06-18 06:50 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (109 votes). Check out past polls.