- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
进程完成后,Plink.exe 不会关闭。当试图通过检查 if output == ' ':break 来打破 while 循环时,代码被卡住了,但仍然没有运气。我可以打印实时输出,但无法在完成后中断循环。
#Establish ssh connection to a server
def _establish_connection(self):
connection='plink -ssh {}@{} -pw {}'.format(self.user,self.server,self.pw)
self.sp = Popen(connection,stdin=PIPE,stdout=PIPE)
#Trying to read live output from stdout and write to file
def _test_create_log(self,_system,_logdir):
self._establish_connection()
self.sp.stdin.write(_command)
timestr = time.strftime("%Y%m%d-%H%M%S")
dir_to_log = os.path.join(_logdir,_system + '_' + timestr + '.txt')
with open(dir_to_log,'w+') as myLog:
while True:
output = self.sp.stdout.readline()
output.decode('ASCII')
if output != '':
myLog.write(output)
print(output.strip())
else: #Code does not reach here, plink not killed.
self.sp.kill()
break
最佳答案
Shell 是一个带有输入和输出的黑盒子。无法检测某个特定命令的输出是否已结束。您所能做的就是在输出末尾添加一些魔术字符串并查找它。无论如何,这不是正确的解决方案。
<小时/>如果您希望使用该命令关闭 Plink,请在 Plink 命令行上提供该命令,例如:
connection='plink -ssh {}@{} -pw {} {}'.format(self.user,self.server,self.pw,_command)
<小时/>
更好的方法是使用 Python 中的 native SSH 库,例如 Paramiko ,而不是驱动外部控制台应用程序。
关于python - 当标准输出没有输出时如何杀死 plink.exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313514/
我希望在后台从 vb.net 应用程序调用 plink(不显示黑色 plink cmd 屏幕)是否可能? 最佳答案 当然。请参阅 dreamincode.net 上的说明. 基本上,您想要隐藏窗口,并
我有一个 Linux shell 脚本文件,它从 Linux 服务器收集各种数据。 (服务、流程、自由空间等)。 从 Windows 收集数据,我们使用 Plink 连接到 linux Boxes 并
我正在使用 Plink 在远程计算机上执行命令。 例如: plink.exe -l login -pw password net stop spooler 是否可以在执行此命令后,Plink 窗口会等
我正在尝试使用无密码 SSH 连接从 Windows 连接 Linux 机器。我在 Windows 机器上使用 PuTTYgen 生成了 key ,并将 key 适本地复制到 Linux 机器上。 在
我正在尝试让 emacs tramp 在 Windows XP 下运行以在 Amazon EC2 实例上运行 putty plink。执行此操作的文档很少。我可以找到部分文档,但没有一个文档可以解决实
我尝试通过 plink 执行 bash 脚本。脚本看起来像这样: echo "@ Starting process..." ./bin/process "process.cfg" & disown %
我正在尝试通过 plink.exe 运行多个命令行。批处理完成后。我想退出并执行新的命令行 我的脚本在execute.bat 文件中 ( echo cd /appl/ echo sudo -s ech
这应该是非常基本的。我正在从 Windows 运行 plink 并希望将一些输出保存到文件中plink 192.168.229.128 -ssh -l root -pw 密码 runsql.sh >
我编写了一个 bash 文件,因此如果用户选择特定选项,则在 Linux 服务器上将执行特定的 .sh 文件。 例如: 如果用户按 1: for %%? in (1) do if /I "%C%"==
plink user@10.220.60.xx -t '/home/user/test/testpgm' 我能够使用上面的 plink cmd 从 Windows 机器运行驻留在 Linux 机器上的
MY SERVER: BitVise SSH server for windows My Client: plink.exe 我这辈子都想不出如何在使用 plink.exe 时更改目录并在该目录中执行
如果超时并自动重新连接,我将如何创建一个简单的批处理脚本 (windows) 来关闭当前的 plink session ? 像这样: if "plink.exe" == "false" ( "
我想在 PowerShell 中加密密码并将其与 plink 和 putty 一起使用。 是的,我知道它只需要明文密码 ( Password encryption using SecureString
配置: Windows 7 腻子 0.67 plink 0.67 问题 我正在尝试使用 plink在 COM9 上打开串行端口连接。 使用 PuTTY 我可以在 COM9 上打开串行连接,并且我为该串
我的一个脚本有问题。基本上它运行得非常顺利,但它需要一些来自 excel 文件的用户输入。用户可能会导致错误,这就是我的问题。 我的脚本通过 ssh 与 plink 连接(lil PuTTY) 到某些
我正在使用 plink.exe 在远程服务器上执行命令。我能够与远程服务器连接,但是当我对服务器执行命令时,它将返回无效字符输出,例如: [?7l[H[2J[?25l[1;1H[37m[40m[2;1
这个问题在这里已经有了答案: Use Plink to execute command (Oracle SQL query) on remote server over SSH (1 个回答) 2年前
这个问题已经有答案了: Using module 'subprocess' with timeout (32 个回答) 已关闭5 年前。 进程完成后,Plink.exe 不会关闭。当试图通过检查 if
我目前正在尝试编写一个函数来运行 plink 并捕获该进程的输出。当我尝试 StandardOutput 时,我什么也没得到,而当我尝试 StandardError 时,我得到“无法从标准输入读取:句
这个问题在这里已经有了答案: How to redirect Windows cmd stdout and stderr to a single file? (7 个答案) 关闭 12 个月前。 我
我是一名优秀的程序员,十分优秀!