fix(service): start the Windows service after granting it its config (D157)
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 1m8s
All checks were successful
PR Checks / rust-gates (pull_request) Successful in 1m8s
`sc start` ran inside registration, before `grant_service_access` let the new virtual account read `sidecar.toml` — which `protect_config` had locked to SYSTEM and Administrators. The first start died on "Access is denied (os error 5)" and the service sat STOPPED: the SCM's restart-on-failure policy never fires for a clean exit with an error code. A later manual start worked, because by then the grant existed. Found on the phase 18 walk (step 4, one Rust instance under the SCM), from the sidecar's own log. The code is shared, so the released ServUO installer has the same first-start failure; the org lead chose to fix both here (D157). Registration no longer starts the service; a new `start_registered` runs after the grant and refreshes the reported state. A no-op on Linux, where the service user exists before the config and registration starts the unit itself. Walked (Windows, elevated): install -> START_PENDING/running, /health on the first probe, clean stop and restart, doctor clean, uninstall clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -624,7 +624,7 @@ fn deploy_instance(
|
||||
prepared.user.as_deref(),
|
||||
layout.relocated,
|
||||
)?;
|
||||
let outcome = service::register_rust(
|
||||
let mut outcome = service::register_rust(
|
||||
prepared,
|
||||
layout,
|
||||
&plan.id,
|
||||
@@ -632,6 +632,7 @@ fn deploy_instance(
|
||||
binary_changed,
|
||||
)?;
|
||||
service::grant_service_access(&plan.config_path, &data_dir, &outcome)?;
|
||||
service::start_registered(&mut outcome, &layout.rust_sidecar_bin, &plan.config_path)?;
|
||||
let service_record = match &outcome {
|
||||
service::Outcome::Registered {
|
||||
kind,
|
||||
|
||||
Reference in New Issue
Block a user