Compare commits

...

2 Commits

Author SHA1 Message Date
librelad
d93bc9a864 Merge claude/1 2026-05-24 14:48:17 +01:00
librelad
5f4f4eb96f feat(switcher): restart the task processor after a docker-type swap
The task processor reads CFG_DOCKER_INSTALL_TYPE once at startup to decide how
runFileOp writes into the task dir (rootless -> as the docker install user,
rooted -> as the manager). After a rooted<->rootless swap a running instance
keeps the old mode and writes task files wrong. Add
restartLibrePortalWebUITaskService and call it at the end of both switch
branches so the processor re-sources the new mode. The switch is a CLI
one-shot, not a processor task, so the restart won't interrupt it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-24 14:48:17 +01:00
2 changed files with 15 additions and 0 deletions

View File

@ -75,6 +75,7 @@ dockerSwitcherSwap()
dockerStartAllApps;
databaseOptionInsert "docker_type" $CFG_DOCKER_INSTALL_TYPE;
switchMigrateRestoreApps;
restartLibrePortalWebUITaskService;
fi
fi
fi
@ -113,6 +114,7 @@ dockerSwitcherSwap()
dockerStartAllApps;
databaseOptionInsert "docker_type" $CFG_DOCKER_INSTALL_TYPE;
switchMigrateRestoreApps;
restartLibrePortalWebUITaskService;
fi
fi
elif [[ $flag == "cli" ]]; then

View File

@ -72,3 +72,16 @@ EOF
fi
fi
}
# Restart the task processor after a docker-type switch. The processor reads the
# install type (rooted/rootless) ONCE at startup to decide how runFileOp writes
# into the docker-install-owned task dir, so a running instance keeps using the
# old mode until it's bounced. The switch is a CLI one-shot (not a processor
# task), so this won't kill an in-flight switch.
restartLibrePortalWebUITaskService()
{
[[ "$CFG_REQUIREMENT_WEBUI_SERVICE" == "true" ]] || return 0
[[ -f /etc/systemd/system/libreportal.service ]] || return 0
runSystem systemctl restart libreportal.service 2>/dev/null
isSuccessful "Restarted task processor for $CFG_DOCKER_INSTALL_TYPE Docker mode"
}