- Ya
- 23 Septemba 2026, 19:35 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 3bcb212
rdp_sessions() collected every Xorg process with a display argument. The image installs lightdm and lightdm-gtk-greeter, so lightdm runs its own Xorg on :0 on every boot of every computer — which means that list was NEVER empty, on any machine, ever. Two things are gated on it being empty, and both were therefore dead: - the restart that makes hibernation possible, whose whole point is to happen while nobody is working. `not IDLE.rdp_sessions()` could not be true, so the original restart had a second independent reason never to fire, on top of the configure() race fixed three commits ago. Fixing that race alone would have changed nothing. - the idle clock. poll() is written to leave last_active alone when nobody is connected, so an abandoned computer sleeps on schedule instead of restarting its clock. With a greeter in the list it took the greeter's idle time instead — which happens to grow, so this one was survivable, but only by accident. An xorgxrdp Xorg is started with `-config xrdp/xorg.conf` and logs to `.xorgxrdp.*.log`, so its command line names xrdp and the greeter's does not. Matched on that rather than on the display number, because :10 being the first xrdp display is a sesman default and not a promise. Four tests, including the greeter-only case and an abandoned computer's clock.
