If I'm understanding you correctly, you're wanting to have your script spawn something that will go off and do some work. Then have the main script ignore what was spawned off and continue on without any delays. Is that correct?
This is it exactly - yes. I maybe should have said that it I am looking for something comparable to "&" in Unix. Thanks for the suggestion, I will take a look at threads.
| [reply] |
If you want something comparable to "&" in Unix, I recommend fork and exec, not threads. If you want sound advice from us, rather than random guessing, you will need to provide more background and context of your application and what you are trying to achieve. And you will need to post some code.
| [reply] |
OK, thanks for the replies. I hope my tone wasn't dismissive of anyone's suggestions, I certainly didn't mean to be and I am grateful for anyone taking the time to respond!
Here is some code. I pass a string from a webpage and I then need to bring up an ssh tunnel in the background (I know I could do this using some existing modules instead of the system call but I stumbled across this issues and I'd like to figure it out this way!
#!/usr/bin/perl
use strict;
use CGI;
use Frontier::Client;
use Template;
my $catch = $cgi->param("catch");
my $exec = 'ssh -T -N myname@myhost.myplace.me -i /home/user/.ssh/keys
+/login.key -p 2022 -L 1111:192.168.1.57:1111';
my $pid;
defined($pid = fork()) or die "We've go some forking trouble - $!\n";
if ($pid == 0) {
exec($exec);
die "No exec here and here's why: $!\n";
exit();
}
my $server = Frontier::Client->new(url => $catch,
);
my $name = $cgi->param("title");
my $cat = $cgi->param("category");
my $priority = "1";
my $Top = $server->boolean("0");
my $method = "appenurl";
my $u = $cgi->param("u");
my $i = $cgi->param("i");
my $r = $cgi->param("r");
my $url = "$u&$i&$r";
my $result = $server->call("appendurl",($name,$cat,$priority,$Top,$url
+) );
So, if I pass the CGI param via the command line I get the tunnel up and sits at the remote login prompt (after a sucessful login) it doesn't continue on to the XMLRPC part. In a browser, the headers (which I am calling from a templat e not included in this code) don't get printed, the script just hangs.
I am starting to think I am doing something really trivially, stupid at this stage? | [reply] [d/l] |