2012-09-07 13 views
7

So che posso ottenere stdin uso sottoprocesso del processo in python come:Come posso ottenere lo stdin di un processo con un id di processo?

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

ma voglio conoscono solo il PID che ho voglia di scrivere a quello del processo stdin come posso fare questo?

+3

Si vuole dirottare standard input di un altro processo? Non è una cosa molto bella da fare ... –

+0

sì, voglio scrivere qualcosa sullo stdin di un altro processo – timger

+0

su quale macchina lo vuoi? – 0x90

risposta

11

Basta scrivere 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') 
Problemi correlati