Hello,
On Friday, December 23, 2022 9:48:22 AM EST Zbigniew Jędrzejewski-Szmek wrote:
On Fri, Dec 23, 2022 at 08:09:56AM +0100, Tomasz Torcz wrote:
On Thu, Dec 22, 2022 at 05:22:09PM -0500, Steve Grubb wrote:
On Thursday, December 22, 2022 1:29:29 PM EST Adam Williamson wrote:
15 seconds feels very aggressive to me. I can think of some cases, like libvirtd automatically suspending or cleanly shutting down running VMs, that might well take longer than that. Could we not go for 30 seconds? Going all the way from 90/120 down to 15 seems pretty radical.
I run across this with some regularity. PackageKit is not installed on my system. What I wished was that when there is a stall shutting down, a message to the console or a dialog box explains who is holding up shutdown. If we knew who was holding things up, bugs might get filed.
But there already is such message! First "waiting for shutdown" with unit name and a timer. Then, in the last phase there's also "wating for process:" message.
Yeah. We added printing of a lot of information in https://github.com/systemd/systemd/commit/3889fc6fc347f0e12070f7b873d065508 c8df816:
Example output:
This is nice, but all I ever seen is a black screen and a spinning circle. No text of any kind. If something were written to the console, how do you see it? If stalls were detected, maybe the graphical shutdown should be suspended so that you can see the console.
-Steve
Stopping user@1000.service...
[ OK ] Stopped dracut-shutdown.service. [ OK ] Stopped systemd-logind.service. [ OK ] Stopped systemd-logind.service - User Login Management. [* ] Job user@1000.service/stop running (2s / 2min): (1 of 2) User job slowstop.service/stop running (1s / 1min 30s)... [*** ] Job user@1000.service/stop running (3s / 2min): (2 of 2) User job slowstop2.service/stop running (2s / 1min 30s)... [ ***] Job user@1000.service/stop running (4s / 2min): (1 of 2) User job slowstop.service/stop running (4s / 1min 30s)... [ *] Job user@1000.service/stop running (5s / 2min): (1 of 2) User job slowstop.service/stop running (5s / 1min 30s)... [ ***] Job user@1000.service/stop running (6s / 2min): (2 of 2) User job slowstop2.service/stop running (6s / 1min 30s)... [*** ] Job user@1000.service/stop running (8s / 2min): (1 of 2) User job slowstop.service/stop running (7s / 1min 30s)... [*** ] Job user@1000.service/stop running (10s / 2min): (2 of 2) User job slowstop2.service/stop running (9s / 1min 30s)... [ *** ] Job user@1000.service/stop running (11s / 2min): (1 of 2) User job slowstop.service/stop running (10s / 1min 30s)... [ *] Job user@1000.service/stop running (12s / 2min): (2 of 2) User job slowstop2.service/stop running (12s / 1min 30s)... [ ***] Job user@1000.service/stop running (13s / 2min): (1 of 2) User job slowstop.service/stop running (13s / 1min 30s)... [*** ] Job user@1000.service/stop running (15s / 2min): (2 of 2) User job slowstop2.service/stop running (14s / 1min 30s)... [* ] Job user@1000.service/stop running (15s / 2min): (2 of 2) User job slowstop2.service/stop running (14s / 1min 30s)... [*** ] Job user@1000.service/stop running (16s / 2min): User job slowstop.service/stop running (16s / 1min 30s)... [ ***] Job user@1000.service/stop running (18s / 2min): User job slowstop.service/stop running (17s / 1min 30s)... [ *] Job user@1000.service/stop running (19s / 2min): User job slowstop.service/stop running (18s / 1min 30s)... [ ***] Job user@1000.service/stop running (20s / 2min): User job slowstop.service/stop running (19s / 1min 30s)... [* ] Job user@1000.service/stop running (22s / 2min): User job slowstop.service/stop running (22s / 1min 30s)... [** ] Job user@1000.service/stop running (30s / 2min): User job slowstop.service/stop running (29s / 1min 30s)... [ ***] Job user@1000.service/stop running (32s / 2min): User job slowstop.service/stop running (31s / 1min 30s)... [ *] Job user@1000.service/stop running (33s / 2min): User job slowstop.service/stop running (32s / 1min 30s)... [ ***] Job user@1000.service/stop running (34s / 2min): User job slowstop.service/stop running (33s / 1min 30s)... [** ] Job user@1000.service/stop running (37s / 2min): User job slowstop.service/stop running (36s / 1min 30s)... [ *** ] Job user@1000.service/stop running (41s / 2min): User job slowstop.service/stop running (41s / 1min 30s)... [ OK ] Stopped user@1000.service - User Manager for UID 1000. Stopping user-runtime-dir@1000.service - User Runtime Directory /run/user/1000... [ OK ] Unmounted run-user-1000.mount - /run/user/1000. [ OK ] Stopped user-runtime-dir@1000.service - User Runtime Directory /run/user/1000.
Futher ideas how to improve things are welcome… But I think that right now we report enough to narrow things down to system or user service that is blocking shutdown.