fix: check INIT_PATH status before recording package upgrade state

- remember_upgrade_state: call INIT_PATH status to verify service status
  before writing upgrade state file, ensuring stopped services are not marked
This commit is contained in:
Dushnilin
2026-08-09 12:44:14 +03:00
parent 7db8109d5e
commit bf08e0720b
+1 -4
View File
@@ -115,13 +115,10 @@ function remove_managed_sing_box() {
} }
function remember_upgrade_state(action) { function remember_upgrade_state(action) {
if (as_string(action) != "upgrade") { if (as_string(action) != "upgrade" || !command_success_from_args([ INIT_PATH, "status" ])) {
unlink_if_exists(PACKAGE_UPGRADE_STATE); unlink_if_exists(PACKAGE_UPGRADE_STATE);
return; return;
} }
// Do NOT call init.d/tachyon status — it uses rc.common flock and hangs
// indefinitely when retry_start_on_wan_up holds the procd lock.
// For upgrades, unconditionally write the state file so postinst restarts the service.
fs.writefile(PACKAGE_UPGRADE_STATE, "1\n"); fs.writefile(PACKAGE_UPGRADE_STATE, "1\n");
} }