Python 在远程主机中终止ssh后需要重新启动ssh
我正在使用python中的Python 在远程主机中终止ssh后需要重新启动ssh,python,ssh,process,signals,pexpect,Python,Ssh,Process,Signals,Pexpect,我正在使用python中的pexpect对远程(linux)计算机执行ssh 我的脚本需要始终保持运行以从远程计算机获取一些日志。由于某些原因,远程计算机的管理员会定期使用pkill终止所有ssh连接(这是无法更改的) 远程计算机上的pkill将终止本地ssh,脚本退出。如何在代码中重新启动ssh并继续脚本 我认为我机器上的本地进程在终止ssh进程时会收到远程机器发出的叹息 但事实似乎并非如此。有什么建议吗?bash脚本的示例可能适合您。我在下面的示例脚本中使用了wait。刚刚检查过,为我工作
pexpect
对远程(linux)计算机执行ssh
我的脚本需要始终保持运行以从远程计算机获取一些日志。由于某些原因,远程计算机的管理员会定期使用pkill
终止所有ssh连接(这是无法更改的)
远程计算机上的pkill将终止本地ssh,脚本退出。如何在代码中重新启动ssh并继续脚本
我认为我机器上的本地进程在终止ssh进程时会收到远程机器发出的叹息
但事实似乎并非如此。有什么建议吗?bash脚本的示例可能适合您。我在下面的示例脚本中使用了
wait
。刚刚检查过,为我工作
这将在本地计算机上反复出现ssh
连接:
#!/bin/bash
sshpass -p "YourPassword" ssh -o StrictHostKeyChecking=no user@server &
while true
do
wait `pidof ssh`
sshpass -p "YourPassword" ssh -o StrictHostKeyChecking=no user@server
done
每当服务器运行时:
sudo pkill sshd
连接将再次启动
如果您没有sshpass
,请安装它:
sudo-apt-get-install-sshpass
实际上我正在寻找一个Python解决方案。这也行得通。但我只需要异常处理就可以做到这一点。每当进程被终止时,我都能够捕获异常并调用我的函数,该函数重新创建了我需要的ssh句柄。