🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by Tomek Wed, 11 Jan 2012 08:30
Uruchomienie pliku batch ze skryptu perl
#52348
Author: Tomek
Date: Wed, 11 Jan 2012 08:30
24 lines
1527 bytes
Witam

Jest taki skrypt (openPerlIde, Windows), który działa j/n:


1. połączenie z serwerem
use Net::Telnet ();
my $t = new Net::Telnet (Timeout=>100);
$t->open("10.92.115.1");

2. uruchomienie na w/w serwerze nakładki do obsługi urządzeń
$t->cmd("xpie");

3. następnie uruchamiam plik batch działający pod tą nakładką
(plik batch leży na w/w serwerze)
$t->cmd("xxxyyy.batch");
i jest ok batch się wykonuje, ale skrypt czeka. Ten batch
tworzy loga około 30 MB, trwa to ponad godzinę i sktypt po
chwili wyświetla time-out lub przekroczony rozmiar bufora.

I chodzi mi o to, żeby batch się uruchomił, a skrypt
poszedł dalej (nie czekał). Jest to możliwe??

pozdrawiam
Re: Uruchomienie pliku batch ze skryptu perl
#52349
Author: PawelS
Date: Wed, 11 Jan 2012 09:41
53 lines
2187 bytes
Tomek pisze:
> Witam
> 
> Jest taki skrypt (openPerlIde, Windows), który działa j/n:
> 
> 
> 1. połączenie z serwerem
> use Net::Telnet ();
> my $t = new Net::Telnet (Timeout=>100);
> $t->open("10.92.115.1");
> 
> 2. uruchomienie na w/w serwerze nakładki do obsługi urządzeń
> $t->cmd("xpie");
> 
> 3. następnie uruchamiam plik batch działający pod tą nakładką
> (plik batch leży na w/w serwerze)
> $t->cmd("xxxyyy.batch");
> i jest ok batch się wykonuje, ale skrypt czeka. Ten batch
> tworzy loga około 30 MB, trwa to ponad godzinę i sktypt po
> chwili wyświetla time-out lub przekroczony rozmiar bufora.

Może spróbuj ustawić stosowne opcje przy tworzeniu obiektu Telnet:
http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
$obj = new Net::Telnet (
[...]
                         [Timeout    => $secs,]);
Net::Telnet->new(Timeout => 20);
The default Timeout is 10

$obj->max_buffer_length - maximum size of input buffer

> 
> I chodzi mi o to, żeby batch się uruchomił, a skrypt
> poszedł dalej (nie czekał). Jest to możliwe??

Tu bym sugerował zrobić forka:

$pid=fork();
if ($pid) {
     # if - in main process - run init
     # tu skrypt może pojść sobie dalej
     # ...
} else {
     # else - in child process - opened pipe by open()
     $t->cmd("xxxyyy.batch");
     exit();
};

> 
> pozdrawiam
> 
> 
> 
Re: Uruchomienie pliku batch ze skryptu perl
#52350
Author: Tomek
Date: Wed, 11 Jan 2012 12:38
57 lines
2559 bytes
: > Witam
: >
: > Jest taki skrypt (openPerlIde, Windows), który działa j/n:
: >
: >
: > 1. połączenie z serwerem
: > use Net::Telnet ();
: > my $t = new Net::Telnet (Timeout=>100);
: > $t->open("10.92.115.1");
: >
: > 2. uruchomienie na w/w serwerze nakładki do obsługi urządzeń
: > $t->cmd("xpie");
: >
: > 3. następnie uruchamiam plik batch działający pod tą nakładką
: > (plik batch leży na w/w serwerze)
: > $t->cmd("xxxyyy.batch");
: > i jest ok batch się wykonuje, ale skrypt czeka. Ten batch
: > tworzy loga około 30 MB, trwa to ponad godzinę i sktypt po
: > chwili wyświetla time-out lub przekroczony rozmiar bufora.
:
: Może spróbuj ustawić stosowne opcje przy tworzeniu obiektu Telnet:
: http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
: $obj = new Net::Telnet (
: [...]
:                         [Timeout    => $secs,]);
: Net::Telnet->new(Timeout => 20);
: The default Timeout is 10
:
: $obj->max_buffer_length - maximum size of input buffer
:
: >
: > I chodzi mi o to, żeby batch się uruchomił, a skrypt
: > poszedł dalej (nie czekał). Jest to możliwe??
:
: Tu bym sugerował zrobić forka:
:
: $pid=fork();
: if ($pid) {
:     # if - in main process - run init
:     # tu skrypt może pojść sobie dalej
:     # ...
: } else {
:     # else - in child process - opened pipe by open()
:     $t->cmd("xxxyyy.batch");
:     exit();
: };
:
dzięki za szybką odpowiedź, spróbowałem kilka
przykładów z użyciem fork i za każdym razem:
Wystąpił problem z aplikacją PerlIDE.exe i zostanie

ona zamknięta.

może użyć IPC::RUN ??

pozdrawiam
Re: Uruchomienie pliku batch ze skryptu perl
#52351
Author: PawelS
Date: Wed, 11 Jan 2012 21:05
68 lines
2878 bytes
Tomek pisze:
> : > Witam
> : >
> : > Jest taki skrypt (openPerlIde, Windows), który działa j/n:
> : >
> : >
> : > 1. połączenie z serwerem
> : > use Net::Telnet ();
> : > my $t = new Net::Telnet (Timeout=>100);
> : > $t->open("10.92.115.1");
> : >
> : > 2. uruchomienie na w/w serwerze nakładki do obsługi urządzeń
> : > $t->cmd("xpie");
> : >
> : > 3. następnie uruchamiam plik batch działający pod tą nakładką
> : > (plik batch leży na w/w serwerze)
> : > $t->cmd("xxxyyy.batch");
> : > i jest ok batch się wykonuje, ale skrypt czeka. Ten batch
> : > tworzy loga około 30 MB, trwa to ponad godzinę i sktypt po
> : > chwili wyświetla time-out lub przekroczony rozmiar bufora.
> :
> : Może spróbuj ustawić stosowne opcje przy tworzeniu obiektu Telnet:
> : http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
> : $obj = new Net::Telnet (
> : [...]
> :                         [Timeout    => $secs,]);
> : Net::Telnet->new(Timeout => 20);
> : The default Timeout is 10
> :
> : $obj->max_buffer_length - maximum size of input buffer
> :
> : >
> : > I chodzi mi o to, żeby batch się uruchomił, a skrypt
> : > poszedł dalej (nie czekał). Jest to możliwe??
> :
> : Tu bym sugerował zrobić forka:
> :
> : $pid=fork();
> : if ($pid) {
> :     # if - in main process - run init
> :     # tu skrypt może pojść sobie dalej
> :     # ...
> : } else {
> :     # else - in child process - opened pipe by open()
> :     $t->cmd("xxxyyy.batch");
> :     exit();
> : };
> :
> dzięki za szybką odpowiedź, spróbowałem kilka
> przykładów z użyciem fork i za każdym razem:
> Wystąpił problem z aplikacją PerlIDE.exe i zostanie
> ona zamknięta.

Ciekawe, skoro pod liuxem to działa,
spodziewałem się, że pod windowsem też zadziała bez problemów,
windows też ma chyba coś w rodzaju forka,

> 
> może użyć IPC::RUN ??

Nie wiem, nie używałen nigdy IPC,
spróbuj i sprawdź, tyle mogę napisać,

> 
> pozdrawiam
> 
> 
> 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads