黑群晖软件transmission下载提示:Unable to save resume file: Too many open files (3) 解决方案

纸扎戏偶

群晖系统跟所有linux系统一样,有ulimit的限制,可以在群晖的ssh终端中敲入ulimit -n ,看到只有1024,这显然不够PT爱好者折腾的;

在网络上查了一圈资料,发现根本无解,群晖没有limits.conf配置文件,也不会从这边加载,也没有pam相关的so动态库;

尝试过在/etc/profile中键入 ulimit -n 65535,只适用于root用户,对普通登录用户依然是1024,群晖官方给出的答复是最大只能4096,所以如果保种不多的话,就采用这个方案吧,比较简单,以下是简单的命令:

vi /etc/profile
 
#最后一行加入
ulimit -n 4096
 
#配置生效,执行
source /etc/profile

但这个数量如果对保种,或者同时下载量过大的朋友完全不够用,下面还有一个变态的方法,就是用C程序动态的去更改进程的最大文件和socket数量,喜欢折腾朋友可以编译以下C程序:

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/types.h>
 
int main(int argc, char** argv) {
    pid_t pid;
    struct rlimit new_limit;
    int result;
    if (argc < 2) {
        return 1;
    }
    pid = atoi(argv[1]);
    new_limit.rlim_cur = 60000;
    new_limit.rlim_max = 60000;
    result = prlimit(pid, RLIMIT_NOFILE, &new_limit, NULL);
    return result;
}

群晖不自带GCC编译器,需要自己折腾,比较麻烦,我这边已经编译好了相关的二进制程序,大家拿去可以直接用,使用方法如下:

进入nas的ssh终端,随便什么目录均可;
下载我编译好的程序,wget https://www.mopsky.com/rlimit
备用下载地址:
rlimit.rar
OneDrive网盘下载地址:http://piaoyun.online/s/软路由NAS/黑群晖(synology)/rlimit

更改rlimit程序的权限,chmod 777 rlimit
查找transmission的进程编号,ps -ef|grep trans,可以看到前面的数字即为进程编号;
使用rlimit工具对进程进行更改:./rlimit 进程编号
查看是否生效,cat /proc/您的进程编号/limits 文件,可以看到file相关的都变成了60000,至此大功告成。

相关阅读:
群晖transmission too many open files 解决方案
https://www.mopsky.com/2019/04/16/%E7%BE%A4%E6%99%96transmission-too-many-open-files-%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/

文章版权声明:除非注明,否则均为我爱教程术原创文章,转载或复制请以超链接形式并注明出处。