Recover managed process log sessions

This commit is contained in:
npc0-hue
2026-08-31 12:16:44 +08:00
parent d5f4d34e07
commit 4277791cb7
6 changed files with 165 additions and 5 deletions
+7 -1
View File
@@ -320,8 +320,15 @@ func (supervisor *OSManagedProcessSupervisor) Status(identity ProcessIdentity) P
func (supervisor *OSManagedProcessSupervisor) ResumeOutput(output ManagedProcessOutput) {
supervisor.mu.Lock()
defer supervisor.mu.Unlock()
now := time.Now().UTC()
changed := false
for _, item := range supervisor.items {
if item.State == "running" && supervisor.isAlive(item) {
item.State = "running"
item.ObservationSeq++
item.UpdatedAt = now
supervisor.items[item.Scope] = item
changed = true
supervisor.startTailersLocked(item, output)
log.Printf("RUN phase=process.managed status=resume_output pid=%d server=%s scope=%s", item.PID, item.ServerInstanceID, safeOptional(item.Scope))
} else if supervisor.hasPendingOutput(item) {
@@ -329,7 +336,6 @@ func (supervisor *OSManagedProcessSupervisor) ResumeOutput(output ManagedProcess
log.Printf("RUN phase=process.managed status=resume_output_drain pid=%d server=%s scope=%s", item.PID, item.ServerInstanceID, safeOptional(item.Scope))
}
}
changed := false
for key, item := range supervisor.retired {
if supervisor.hasPendingOutput(item) {
supervisor.startDrainTailersLocked(item, output)