我的 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 用户。
你能帮我解决这个问题吗?我不是专家,可能有些文件仍然打开但没有关闭,或者可能在较长时间后关闭。
一个脚本也许可以帮助如何关闭所有打开的文件?
可能的工作解决方案:
我找到了“轻”的解决方案。这些限制不会影响 tvheadend。当我使用这个命令找出 tvheadend pid
比这里我能看到极限
我们必须编辑这一行
我所要做的就是编辑这个值
它基本上将两个限制都设置为 4096(在我的例子中,第一个是 1024)。
一个小问题是服务何时重新启动。限制设置为其默认值。我有脚本来找出 pid 并自动设置限制。它每 6 小时在 cron 中运行一次,这很好,因为崩溃是在运行该服务大约 18 小时后发生的。
最好的解决方案是提高这个值,这样当服务重新启动时它会保持在重新启动之前的状态。