2012-09-07 15 views
7

wiem, mogę dostać proces za stdin użytkowania podproces w python jak:Jak mogę uzyskać stdin procesu przez identyfikator procesu?

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

ale chcę wiedzieć tylko PID który chcę napisać proces na stdin w jaki sposób mogę to zrobić?

+3

Chcesz porwać stdin innego procesu za? To niezbyt przyjemna rzecz ... –

+0

tak, chcę napisać coś na stdin – timger

+0

innego procesu na jakiej maszynie chcesz? – 0x90

Odpowiedz

11

Wystarczy napisać do /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') 
Powiązane problemy