it-swarm.com.de

Starten einer neuen Bash-Shell von einer Bash-Shell

Ich möchte ein Programm aus der Bash-Shell ausführen. Wenn das Programm ausgeführt wird, dominiert es die gesamte Shell. Daher möchte ich eine neue Shell starten und das Programm von dort ausführen. Zur Zeit mache ich:

gnome-terminal -x "cd Dropbox; program_name"

Dies gibt mir jedoch den Fehler. Fehler beim Ausführen des untergeordneten Prozesses, keine solche Datei oder Verzeichnis. Ich glaube, das liegt daran, dass das neue Terminal keine Zeit zum Initialisieren hat. Wie kann ich das beheben? 

14
providence

Ich gebe zu, dass dies Ihre Frage nicht wirklich beantwortet, aber ich denke, dass es Ihr Problem löst.

Warum nicht einfach & verwenden, um es in den Hintergrund zu schicken. Sie können sehen, ob es noch mit jobs ausgeführt wird, und es mit fg in den Vordergrund bringen. Sie können es auch in den Hintergrund zurücksenden, indem Sie es zuerst mit Ctrl+Z dann bg

Beispiel zum Ausprobieren.

> sleep 20 &
> jobs
> fg [jobNumber]
[Ctrl-Z]
> jobs
> bg [jobNumber]
> jobs
9
tjm

Versuchen:

bash -c 'gnome-terminal -x cd /absolute-path && program_name'
9
lukasz

verwenden Sie den absoluten Pfad zum Programm oder zur CD, bevor Sie gnome-terminal aufrufen. Und Sie brauchen ein &, um es in den Hintergrund zu stellen.

cd Dropbox; gnome-terminal -x "program_name" &
1
Kim Stebel

Versuchen Sie screen . Es ist ein einfaches Brogramm, mit dem Sie mehrere Schalen gleichzeitig verfolgen können. Sie können durch jede der geöffneten Shells navigieren, die Sitzung sogar verlassen und später wieder verbinden.

1
grundprinzip

Fügen Sie am Ende Ihres Befehls ein "&" hinzu, z. B .:

gnome-terminal &

Ich weiß nicht, ob es mit gnome-terminal funktioniert, aber mit mrxvt hat es gut funktioniert.

0
patapizza
/bin/bash -c "/path/to/prog"

Schauen Sie sich aber auch den Befehl sleep an.

0
user686605