Python os.forkpty 为什么不能正常工作
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个特定的功能时,发现它没有按照预期工作,或者出现了错误信息。这种情况下,通常我们会去查找相关的资料,看看有没有人遇到过类似的问题,或者有没有解决方案。
在这个过程中,StackOverflow是一个非常有用的资源。它是一个程序员社区,大家可以在这里提问和回答问题。很多时候,我们可以找到别人已经解决过的类似问题,这样就能节省很多时间和精力。
总之,遇到问题时,不要慌张,先查查资料,看看有没有人遇到过相同的情况,或者在社区里寻求帮助,这样通常能找到解决办法。
import pty
import os
import sys
import time
pid, fd = os.forkpty()
if pid == 0:
# Slave
os.execlp("su","su","MYUSERNAME","-c","id")
# Master
print os.read(fd, 1000)
os.write(fd,"MYPASSWORD\n")
time.sleep(1)
print os.read(fd, 1000)
os.waitpid(pid,0)
print "Why have I not seen any output from id?"
1 个回答
5
你睡得太久了。最好的办法就是尽快开始阅读,每次读一个字节。
#!/usr/bin/env python
import os
import sys
pid, fd = os.forkpty()
if pid == 0:
# child
os.execlp("ssh","ssh","hostname","uname")
else:
# parent
print os.read(fd, 1000)
os.write(fd,"password\n")
c = os.read(fd, 1)
while c:
c = os.read(fd, 1)
sys.stdout.write(c)