1.目前做了个网页版命令执行使用了falsk-socketio,但是发现不能逐行
def shell(cmd, kwargs):
print('>>>>>>>>> 执行命令:%s' % cmd)
program_name = kwargs.get('program_name')
socketio_event = kwargs.get('socketio_event')
socketio_sid = kwargs.get('socketio_sid')
try:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
print('>>>>>>>>> 客户端: %s 程序名: %s 进程ID:%s ' % (socketio_sid, program_name, str(p.pid)))
while p.poll() is None:
res = p.stdout.readline()
print(res)
emit(socketio_event, str(res))
for i in p.stdout.readlines():
emit(socketio_event, str(i))
except Exception as e:
debug(e)
return -1
else:
return 0
2.发现tplink的ping命令是用ajax请求完成的,tplink的那种ping命令执行如何使用flask实现?
你参考一下我的demo gsw945/flask-sio-demo
里面有正确的和不正确的例子,也给出了说明。
对于你的例子,你只展示了执行的主要代码,我并不知道你的整个流程是怎样的。如果能展示真个流程,我有兴趣进一步解答。