2012-09-07 15 views
7

Sé que puedo conseguir stdin uso subproceso del proceso en el python como:¿Cómo puedo obtener un stdin de proceso por una identificación de proceso?

import subprocess 
f = subprocess.Popen('python example.py',stdin=subprocess.PIPE) 
f.stdin.write('some thing') 

pero quiero solo conocen el PID, que quiero escribir en el proceso de stdin cómo puedo hacer esto?

+3

Usted quiere secuestrar la entrada estándar de otro proceso? Eso no es algo muy bueno que hacer ... –

+0

sí, quiero escribir algo sobre el stdin de otro proceso – timger

+0

en qué máquina lo quieres? – 0x90

Respuesta

11

escribe simplemente a /proc/PID/fd/1:

import os.path 
pid = os.getpid() # Replace your PID here - writing to your own process is boring 
with open(os.path.join('/proc', str(pid), 'fd', '1'), 'a') as stdin: 
    stdin.write('Hello there\n') 
Cuestiones relacionadas