如何修改115.sh脚本,用trickle限制Linux版115网盘上传带宽
解决Linux版115网盘客户端上传带宽限制问题
问题根源
直接在命令行执行trickle -s -u 5 sh /usr/local/115/115.sh无效,是因为trickle仅监控初始的sh进程,但脚本最后通过exec将sh进程替换为115主程序,导致trickle的流量追踪中断。你之前尝试的几种脚本写法,要么是让trickle包裹bash进程(同样会被exec替换),要么错误放置trickle的位置,无法作用于真正的115主程序。
正确的脚本修改方法
修改/usr/local/115/115.sh的最后一行,让trickle直接作用于115的主二进制程序,同时保留原脚本的环境变量和进程名设置:
#!/bin/sh export LD_LIBRARY_PATH=/usr/local/115/lib:$LD_LIBRARY_PATH export PATH=/usr/local/115:$PATH exec -a "$0" trickle -s -u 5 /usr/local/115/115 > /dev/null 2>&1
原理说明
exec -a "$0":替换当前的sh进程为后续程序,并将进程名设置为脚本名(115.sh),和原脚本行为保持一致。trickle -s -u 5:以独立模式运行,限制上传带宽为5KB/s(若需调整为MB/s,将数值改为对应千进制单位,如5MB/s写5000)。- 直接让
trickle启动/usr/local/115/115主程序,确保trickle全程监控该进程的网络流量,不会因进程替换失效。
额外注意事项
如果修改后仍无效,需确认115客户端是动态链接程序:trickle通过LD_PRELOAD注入实现流量限制,静态链接的程序无法被其监控。若为静态链接,需改用tc等基于内核的流量控制工具。
内容的提问来源于stack exchange,提问作者weiw26
相关产品推荐
相关产品推荐

