Je voudrais exécuter un programme de la bash Shell. Lorsque le programme est exécuté, il domine l'intégralité du Shell. J'aimerais donc démarrer un nouveau Shell et exécuter le programme à partir de là. Actuellement je fais:
gnome-terminal -x "cd Dropbox; program_name"
Cependant, cela me donne l'erreur. Échec d'exécution du processus enfant, pas de fichier ni de répertoire. Je crois que c’est parce que le nouveau terminal n’a pas le temps de s’initialiser. Comment puis-je réparer cela?
J'admets que cela ne répond pas vraiment à votre question, mais je pense que cela résout votre problème.
Pourquoi ne pas utiliser simplement &
pour l’envoyer en arrière-plan. Vous pouvez voir s'il fonctionne toujours avec jobs
et le ramener au premier plan avec fg
name__, vous pouvez également le renvoyer à l'arrière-plan, en le stoppant d'abord avec Ctrl+Z alors bg
name__
Exemple à essayer.
> sleep 20 &
> jobs
> fg [jobNumber]
[Ctrl-Z]
> jobs
> bg [jobNumber]
> jobs
Essayer:
bash -c 'gnome-terminal -x cd /absolute-path && program_name'
utilisez le chemin absolu du programme ou du CD avant d’appeler gnome-terminal. Et vous avez besoin d'un & pour le mettre en arrière-plan.
cd Dropbox; gnome-terminal -x "program_name" &
Essayez écran . C'est un simple brogramme qui vous permet de suivre plusieurs coquilles en même temps. Vous pouvez naviguer dans chacun des shells ouverts et même quitter la session et vous reconnecter plus tard.
Essayez d’ajouter "&" à la fin de votre commande, par exemple:
gnome-terminal &
Je ne sais pas si cela fonctionne avec gnome-terminal, mais cela a bien fonctionné avec mrxvt.
/bin/bash -c "/path/to/prog"
Mais examinez également la commande sleep
.