我创建了一个简单的 asyncssh 应用程序,它启动一个持续运行的进程。我想从应用程序运行时获取所有 stdout,但由于某种原因,它以部分方式结束。我不确定这是否意味着我可以从 stdout 获得多少限制。代码类似于以下内容:
async def watch_process(command):
async with asyncssh.connect(host=host, user=user, pass=pass) as conn:
async with conn.create_process(command) as proc:
async for line in proc.stdout:
printf(f"{host}: {line}")
asyncio.run(watch_process(command))
UPDATE1:我刚刚看了一下 asyncssh 电子邮件列表,上面的代码似乎是正确的,所以我有点困惑,我的进程只打印出一部分行,然后挂起。https://groups.google.com/g/asyncssh-users/c/DiwRpZpYQjM/m/5uklhe01AwAJ
UPDATE2:在让应用程序运行几个小时 asyncssh 后,我得到了控制台输出每 X # 行。似乎它必须填充一个缓冲区超过一个阈值,然后才能打印出来。在 SSH 中是否有一个 theshold 设置,我需要配置它,以便它打印出每一行,而不是每 X # 行?
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(60条)