1
resposta

Executar novo terminal a partir de programa python

Tenho o seguinte cenário:

Estou utilizando Pyro para trabalhar com Objetos Remotos. E nele estou usando persistencia, ou seja, meu código permite que eu faça um rebind no servidor...

Com isso, se meu servidor caísse gostaria de a partir do meu cliente executar o meu server.py sozinho... estou tendo muitas dificuldades nisso.

tentei algo assim:

pid = subprocess.Popen(args=[
    "xterm", "--command=python serverApp.py"]).pid
    print pid

Achei um exemplo no stackoverflow mas não está rolando :( 

cmd = ['xterm']
cmd.extend(['-e', 'bash', '-c', 'ls -l; exec $SHELL' ])

subprocess.Popen(cmd, stdout=subprocess.PIPE)

porém estou tendo o seguinte erro:

osError: [Errno 2] No such file or directory
1 resposta

Oi, Juliani! Na chamada da função Popen(), tente inserir o argumento shell=True. Assim, o comando será executado pela shell e deve funcionar. Mas cuidado, usar shell=True abre uma vulnerabilidade quanto ao shell injection, o que pode ser bastante perigoso.