[Perl/PHP] problemen met wachten op respons Daemon

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een perl daemontje draaien op een poort wat een scp commando uitvoert.

Nu doet ik vanuit de php code een aanroep op deze daemon, maar guess what de browser blijft hangen omdat deze voor lange tijd geen respons krijgt. Dit is natuurlijk afhankelijk van hoelang het scp commando duurt.

Nu vraag ik mij af, of er een manier is dat ik de browser toch een respons kan geven tussendoor.

PERL Code:
@rows = `scp -r $rootuser\@$remote_host:$remote_homedir $local_homedir`;
foreach $row(@rows){
chomp($row);
print "$row\n";
}

Maar op bovenstaande code krijg ik geen respons...

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan ook zorgen dat de browser response blijft krijgen. bijv iedere seconde iets op het sherm laten dumpen. Dan krijg je in ieder geval geen time-out.

Heeft de webserver wel rechten om scp uittevoeren?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Omdat hij die aanroep doet... Kan ik de browser nix op scherm laten toveren...

En het SCP wordt wel uitgevoerd!!!

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
als je dan eerst output stuurt (en flushed) en dan pas het commando doet...
De timeout komt omdat er helemaal geen response komt, niet een "ik ben bezig, even geduld aub" of whatever (gewoon een kort stukje tekst opsturen, flush uitvoeren en dan moet het goed gaan)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Doet ik...

Maar nie werken.. * ZUCHT *

Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Kun je die scp niet als een background thread starten?
Bij linux en unix doe je dat door een ampersand (&) toe te voegen aan het einde van het commando.
Bij windows geloof ik met 'start' voor het commando.
Hiermee krijgt je programma gelijk de controle weer terug en wordt een apart proces opgestart voor de scp.
Echter, dan wordt het wel lastiger om te zien hoever hij is. Bij linux en unix krijg je wel het process id terug van de aanroep en zou je dus steeds kunnen kijken of dit proces nog bestaat. Bij windows heb ik geen idee hoe je dat oplost.

Ik hoop dat je er iets mee kunt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor de informatie.

Heb scp al op de background proberen te draaien, maar mocht niet baten.
heb zelfs al >2&1 achter het scp commando geplant... Maar helaas.

Het komt op 1 of andere manier doordat ik de daemon via een poort aanroep.

In de prompt werkt het allemaal perfect...
Pagina: 1