2012-09-07 19 views
7

Ben gibi python yılında sürecin stdin kullanım alt işlemi alabilirsiniz biliyorum:Bir işlemin stdin'i bir işlem kimliğiyle nasıl edinebilirim?

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

ama sadece ben yazmak istiyorum pid biliyor istediğiniz işlemi en stdin ben bu nasıl yapabilirim?

+3

Başka sürecin Stdin kaçırmak istiyor? Bu çok iyi bir şey değil ... –

+0

evet, başka bir işlemin stdin – timger

+0

niçin bir makine yazmasını istersiniz? – 0x90

cevap

11

Basitçe /proc/PID/fd/1 yazabilirsiniz:

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') 
İlgili konular