morytyann / OpenWrt-mihomo

Transparent Proxy with Mihomo on OpenWrt.
MIT License
1.26k stars 146 forks source link

[BUG] #285

Open lencil opened 2 hours ago

lencil commented 2 hours ago

自查

确认

系统

OpenWrt

BUG 描述

在mihomo luci面板中“基础配置” -> "启用“复选框,选中的情况下,重启路由器。 mihomo服务有时没有启动成功,查看日志是mihomo有时在第一次启动时,如果没有正确拉取clash配置文件,便会一直保持“未运行”状态。

预期行为

如果 在mihomo luci面板中“基础配置” -> "启用“复选框,选中的情况下: 如果mihomo service启动失败,则应该定时尝试启动。而非僵在那里。

复现步骤

在mihomo luci面板中“基础配置” -> "启用“复选框,选中的情况下,让wan口断掉互联网连接,重启路由器。此时由于mikomo拉取配置失败,服务就不会启动,再次将wan口启动互联网,mikomo会一直保持“未运行”,而非定时尝试启动。

调试信息

插件日志

核心日志

附加信息

No response

lencil commented 2 hours ago

补充一点疑问,我理解的“定时重起”选项的策略是不管service是否正常,都会按照cron设置的时间定时重起吧? 我建议如果service没有启动成功时,应该自动等若干毫秒尝试重启,或给予ui自行配置。

lencil commented 2 hours ago

是否可以考虑procd_set_param respawn设置一下失败重启策略?或者单独缓存clash配置文件在本地,这样不会因为每次重启service时pull不成功而导致启动服务失败。解耦配置文件更新和服务启动。

morytyann commented 1 hour ago

我理解的“定时重起”选项的策略是不管service是否正常,都会按照cron设置的时间定时重起吧?

并不是,只有成功启动了才会设置定时重启。

是否可以考虑procd_set_param respawn设置一下失败重启策略?

已经设置了啊,而且如果你下载失败,根本走不到启动procd实例的代码。

单独缓存clash配置文件在本地

目前v1.10.0已经实现了,但是还没有实现定时更新订阅,实现后会发版。

morytyann commented 1 hour ago

如果你是因为启动后拨号较慢,导致无法正常启动,目前你可以先设置延迟启动,这样可以缓解这个问题。

失败后重试的话,暂时没有做的计划,而且有了订阅文件缓存,只要第一次能拉下来,后面就不会有问题的。