views:

1329

answers:

6

I'm writing a ksh script and I have to run a executable at a separate Command Prompt window.

+4  A: 

maybe it´s not a seperate window that gets started, but you can run some executables in background using "&"

e.g.

./myexecutable &

means your script will not wait until myexecutable has finished but goes on immediately. maybe this is what you are looking for. regards

Joachim Kerschbaumer
+7  A: 

I believe you mean something like xterm -e your.sh &

Don't forget the final &

vartec
+2  A: 

if you want a new windows, just start a new instance of your terminal application: in kde it's

konsole -e whatever

i'm sure the Gnome terminal has similar options

Javier
+1  A: 

One of the most useful terminal session programs is screen.

screen -dmS title executable

You can list all your screen sessions by running

screen -ls

And you can connect to your created screen session (also allowing multiple simultaneous/synchronized sessions) by running

screen -x title

This will open up the emulated terminal in the current window where executable is running. You can detach a screen session by pressing C-a C-d, and can reattach as many times as you wish.

lastlee
+1  A: 

Some have recommended starting it in the background with &, but beware that that will still send all console output from the application you launch to the terminal you launched it from. Additionally, if you close the initial terminal the program you loaded will end.

If you're using a desktop environment like KDE or GNOME, I'd check the alt+f2 launching apps (gnome-open is the one for GNOME, I don't know the name of the KDE app) and see if you can pass them the command to launch as an argument.

Also, if your intention is to launch a daemon, you should check the nohup documentation.

Lucas Cardoso
A: 

If you really want your program started in a new terminal window, you could do something like this: xterm yourtextmodeprogram or gnome-terminal -e yourtextmodeprogram or konsole -e mc

Trouble is that you cannot count on a particular terminal emulator being installed, so (again: if you really want to do this) you would need to look for the common ones and then execute the first one encountered.

As Joachim mentioned: The normal way to do this is to background the command (read about shell job control somewhere, if you want to dig deeper).

There are also cases where you want to start a persistent shell, i.e. a shell session which lives on when you close the terminal window. There are two ways to do this:

  • batch-oriented: nohup command-to-run &
  • interactive: screen
Troels Arvin