TVHEADEND 崩溃 - 打开的文件太多(epoll 和 tvhpoll)

TVHEADEND 崩溃 - 打开的文件太多(epoll 和 tvhpoll)

我的 tvh 服务器有时会崩溃,需要重新启动。在日志中我注意到了此记录

 tvhpoll: failed to create epoll [Too many open files]

我尝试提高限制并关注了此主题

https://stackoverflow.com/questions/880557/socket-accept-too-many-open-files

但我没有看到任何区别。我想知道这些限制是否仅限于特定用户。例如,当我以 root 身份提升它们时,它会影响所有用户还是只影响 root。TVheadend 正在使用 hts 用户。

你能帮我解决这个问题吗?我不是专家,可能有些文件仍然打开而没有关闭,或者可能在较长时间后才关闭。

脚本也许可以帮助如何关闭所有打开的文件?

答案1

可能的解决方案:

我找到了“简单”的解决方案。这些限制对 tvheadend 没有影响。当我使用此命令查找 tvheadend pid 时

 pidof tvheadend

比在这里我能看到限制

 cat /proc/PID_OF_TVHEADEND/limits

我们必须编辑此行

Max open files      1024           4096            files     

我所要做的就是编辑这个值

  prlimit -n4096:4096 -p PID_OF_TVHEADEND

它基本上将两个限制都设置为 4096(在我的情况下,第一个是 1024)。

一个小问题是服务重新启动时。限制设置为其默认值。我有脚本来找出 pid 并自动设置限制。它每 6 小时在 cron 中运行一次,这很好,因为崩溃是在运行服务大约 18 小时后发生的。

最好的解决方案是提高这个值,以便当服务重新启动时它保持在重新启动之前的状态。

相关内容