Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Determine if a program in a different terminal has ended

by almut (Canon)
on Sep 17, 2009 at 11:15 UTC ( [id://795851]=note: print w/replies, xml ) Need Help??


in reply to Determine if a program in a different terminal has ended

I just tried it (with gnome-terminal and xterm), putting a simple "sleep 2" in myscript.pl, and the terminals popped up sequentially, staying there for 2 seconds (which is what I would have expected, as you're not doing anything to explicitly run things in the background...).

Could you elaborate on what exactly is happening in your case? Does the script actually execute? How do you run the commands within myscript.pl? Any errors?

BTW, you probably meant to increment $k within your while loop... Or simply use for (1..3) {...}

Replies are listed 'Best First'.
Re^2: Determine if a program in a different terminal has ended
by renegadex (Beadle) on Sep 17, 2009 at 11:41 UTC
    the myscript.pl takes a long time to finish and it also depends on the userinputs, it also has its own gui and other stuff. so everytime I run that script, it waits for user input such as button presses and other stuff... using a sleep() would be useless because the time that the script would finish is unknown. if there would be a way for the myscript.pl to send a signal or something that can be captured by the main script, maybe that might work? hehe but i don't know any...
    Mabuhay Civil Engineers! :D
      using a sleep() would be useless

      I just put the sleep in there for testing purposes, i.e. to emulate a script doing something that takes time... (if the script doesn't do anything, the terminal would of course also close immediately)

      I still wonder what's happening in your case.  The "normal" thing for a terminal would be to wait until the command it runs has finished...

      What happens on your system when you try

      for (1..3) { system("gnome-terminal -e 'sleep 2'"); }
        For demonstration, try this... I'm having trouble explaining my situation hehehehe
        # myscript.pl # # script must be run in a terminal # use Gtk2 '-init'; my $window = Gtk2::Window->new(); $window->signal_connect( destroy => sub { exit } ); my $button = Gtk2::Button->new("click me to close"); $button->signal_connect('clicked'=> sub { exit } ); $window->add($button); $window->show_all(); Gtk2->main;

        next is the main code
        # main.pl # my $k = 0; while($k < 3){ system("gnome-terminal -e 'perl myscript.pl'"); $k++; }

        if i ran main.pl it call the script 3x then ends... yet the first myscript.pl has not yet finished running... it waits for you to press the button... what i wanted to do is... open the 1st myscript.pl then wait for somebody to press it... then if somebody presses it, another myscript.pl would run again.. then so on..
        Mabuhay Civil Engineers! :D
        i cant see my post... sorry... i reposted another one below.. which i cant see either!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://795851]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2024-04-19 22:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found