-
郭阔 authored
Lock files are port-<port>.<pid>.lock (two dots); ${f##*.} yielded the literal 'lock' instead of the PID, so the liveness check always failed and ANY exiting harvest deleted sibling LIVE locks — with all locks gone the last exiter then quit the site-shared browser out from under a still-running sibling harvest (nikkei-world 09:24 exit killed the browser mid nikkei-markets run; earlier 05:00 run likely degraded the same way until the 60min watchdog TERM'd it at exit=143). Parse correctly: basename minus .lock suffix, then last dot-segment. Self-test: live lock survives, dead-PID lock cleaned.3eadf69a