Subprocess module: running an interactive shell
Roman Medina-Heigl Hernandez
roman at rs-labs.com
Fri Mar 13 21:39:47 EDT 2009
Hi,
I'm experimenting with Python and I need a little help with this. What I'd
like is to launch an interactive shell, having the chance to send first
several commands from python. I've written the following code:
=============
#!/usr/bin/env python
import sys, subprocess
exe = "/bin/sh"
params = "-i"
proc = subprocess.Popen([exe, params], stdin=subprocess.PIPE)
proc.stdin.write("id\n")
while True:
line = sys.stdin.readline()
if not line:
break
proc.stdin.write(line)
sys.exit()
=============
The problem is that when I launch it, python proggy is automatically
suspended. The output I got is:
roman at rslabs:~/pruebas$ ./shell.py
roman at rslabs:~/pruebas$ uid=1000(roman) gid=1000(roman) groups=1000(roman)
roman at rslabs:~/pruebas$
[2]+ Stopped ./shell.py
roman at rslabs:~/pruebas$
Why and how to fix it? Would you suggest a better and more elegant way to
do what I want?
Thank you.
--
Saludos,
-Roman
PGP Fingerprint:
09BB EFCD 21ED 4E79 25FB 29E1 E47F 8A7D EAD5 6742
[Key ID: 0xEAD56742. Available at KeyServ]
More information about the Python-list
mailing list