Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
There's more than one way to do things
 
PerlMonks  

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("home.pl");

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!

Comment on Forking SSH via Apache
Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1074421]
Approved by GotToBTru
Front-paged by GotToBTru
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (14)
As of 2014-04-16 11:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (424 votes), past polls