feat(bt): 批③后台管理页 — bg_page(顶栏'后台'入口+sub_page_t列表[名字/CPU/内存/状态/tap=kill]+一键清除动作行+空态,2s实时)+meow_bgmgr(collect/can_kill !framework门控+kill_all不杀框架)+meow_bg_terminate复用回收序列;amsd FG/BG收编(重编57e19cde含handle_bg/fg);test_bgmgr 20项ALL PASS,0warning
This commit is contained in:
1 parent
2f22e26de7
commit
211c5a556a
9 files changed
+624
-1
No files matched your search
@@ -270,6 +270,27 @@ void meow_bg_tick(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* 批③后台管理页:请求终止某个后台保活 App(走既有 SIGTERM→SIGKILL 真退序列)。
|
||||
* 只置 term_at_ms(tick 续做 SIGTERM→TERM_GRACE_MS→SIGKILL→reap→on_bg_dead→摘表),
|
||||
* 与宽限超时/卡拔回收同一条终止通道,**不在此处直接 reap**(保持单一写者 tick 收口)。 */
|
||||
int meow_bg_terminate(const char *app_id)
|
||||
{
|
||||
if (!app_id || !app_id[0]) return MEOW_ERR_INVAL;
|
||||
int i;
|
||||
for (i = 0; i < MEOW_BG_MAX; i++) {
|
||||
meow_bg_entry_t *e = &g_bg[i];
|
||||
if (e->used && e->pid > 0 && !strcmp(e->app_id, app_id)) {
|
||||
if (e->term_at_ms == 0) {
|
||||
bg_log("[bgplay] 后台管理页终止后台App: %s pid=%d", app_id, (int)e->pid);
|
||||
kill(e->pid, SIGTERM);
|
||||
e->term_at_ms = bg_now_ms();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return MEOW_ERR_NOENT;
|
||||
}
|
||||
|
||||
/* ================= 无头后台服务 ================= */
|
||||
|
||||
static meow_svc_rt_t *svc_find_mut(const char *app_id, const char *svc)
|
||||
|
||||
Reference in new issue
Block a user