I am trying to open a terminal and run a command in it. I am using
os.system("gnome-terminal -e 'bash -c \"exec bash; MY_COMMAND; exec bash\" '")
This opens up a new terminal, but the command is not executed.
The exec
command replaces the currently running process with a new one, so if you have an exec in a list of commands to run, as soon as exec is run, nothing else will run. So you're replacing 'bash -c \"exec bash; MY_COMMAND; exec bash\" '
with bash
, and then nothing after the exec bash
is running. Try this instead:
os.system("gnome-terminal -e 'bash -c \"MY_COMMAND\" '")
or if you need a terminal to stay open, try this:
os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; sleep 1000000\" '")
of if you want the terminal to stay open and be in a bash shell, try this:
os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; bash\" '")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With