ssh连接防止断开程序中断

文章讲述了在autoDL虚拟机上通过git下载大文件时遇到的频繁断线问题,尝试了nohup和screen方法未果。作者转向使用HuggingFace的`snapshot_download`函数,但依然面临proxy连接限制。最终发现问题是网络会间歇性断开,需保持代理持久连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到的问题是 在autoDL的虚拟机上面通过git下载大文件(ChatGLM)的时候经常下载到一半掉线,怀疑是因为ssh断开问题所以找到教程。
教程
解决方法有两个

解决方法1

是nohup命令,但是nohup命令并没有使文件下载完全,感觉nohup命令可能会适合跑代码持续输出的时候的日志输出。

nohup bash hello.sh >hello.log &
解决方法2

使用screen来创造一个虚拟的显示主页,然后再进行操作,推出screen程序会继续执行。

screen -ls   #查询已有的screen

在这里插入图片描述

echo $STY #查询是否在screen里
screen -r ID #进入screen 以上面为例 screen -r 98396
screen -d ID #退出screen
​​​​​​​screen -S your_screen_name -X quit #h删除screen
screen -S your_screen_name #增加新screen
# 按ctrl+a+d 退出screen

但到现在为止都还没有解决,怀疑是虚拟机会各一段时间断网,并不是只断联ssh。
现在换使用huggingface自带的下载方法。
huggingface下载数据集


#使用huggingface_hub,好处是可以看到下载速度,以及过滤不想下载的文件
#下载的文件放在~/.cache/huggingface下,且文件名都被改掉了
from huggingface_hub import snapshot_download
snapshot_download(repo_id="THUDM/chatglm3-6b")

下载还是失败了(但上述方法是可行的,在服务器不会定时断开所有终端的情况下)
报错有 proxy连接达到最大尝试限制(考虑网断了),打算把代理放到永久打开。(screen挂到后台然后http代理持续挂载到网络文件)
代理永久打开
得出结论了,autodl在去网络下载传输的时候就是会隔一段时间给你断开一次··········

端口查杀

端口号命令 kill port
1.Win电脑击杀端口号命令
2.Mac电脑击杀端口号命令
3.Linux击杀端口号进程

速览:(详细操作在下方)

Win: 1. netstat -ano | findstr [端口号]  //说明: netstat -ano | findstr用于查找进程
	 2. taskkill /F /PID [PID]          //说明: taskkill /F /PID用于`强制终止`指定PID的进程
Mac: 1. sudo lsof -i tcp: [端口号]     //说明: 列出打开TCP端口号(如:80)的进程信息
	  2. sudo kill -9 [PID]            //说明:`强制终止`PID(如:1234)的进程
Linux: 1. sudo lsof -i :[端口号]       //说明:显示占用端口号的进程的详细信息,包括进程ID(PID)
	   2. sudo kill -9 [PID]           //说明:`强制终止`PID(如:1234)的进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值