背景
frps 服务大量报错 error: no available port
但是 ulimit 和 systemctl 的限制都已经改了。
systemctl 的问题可以参考之前写的 Centos 7 修改 ulimit 后 systemctl 启动服务无效
原因
frps 使用的是 supervisor 进行的管理,但是 supervisor 配置中有两个对进程和fd的关键项
minfds=1024 ; min. avail startup file descriptors; default 1024
minprocs=200 ; min. avail process descriptors;default 200
minfds 和 minprocs 决定了 supervisord 进程及其守护的子进程的 Max Processes 和 Max open files
解决方案
- 将
minfds和minprocs调大 - 使用
systemctl进行管理。- frps 官方下载包中含有
frps.service,可按需修改配置内容 - 将其放入
/usr/lib/systemd/system/ -
systemctl enable frps加入开机启动 -
systemctl start frps启动 frps
- frps 官方下载包中含有