At least it tells you how long it'll take before it decides to SIGKILL whatever is holding the shutdown sequence.
Seriously, every time I gotta be out the door. Just let me shut you down.
21 days ago by cannedtuna to c/linuxmemes
At least it tells you how long it'll take before it decides to SIGKILL whatever is holding the shutdown sequence.
I entrust you with this horror, go figure out what to blame. ::: spoiler shutdown-analyze.sh
#! /usr/bin/env bash
shutdown_start=$(journalctl -b -1 -u systemd-logind --grep="System is (powering down|rebooting)" --output=cat --no-pager --output-fields=_SOURCE_REALTIME_TIMESTAMP)
shutdown_start=$((shutdown_start / 1000000))
units=$(journalctl -b -1 --since=@$shutdown_start --output=cat --no-pager --output-fields=UNIT JOB_TYPE=stop CODE_FUNC=job_emit_start_message)
for u in $units; do
stopping_start=$(journalctl -b -1 --since=@$shutdown_start -u "$u" --output=cat --no-pager --output-fields=_SOURCE_REALTIME_TIMESTAMP JOB_TYPE=stop CODE_FUNC=job_emit_start_message _SYSTEMD_UNIT=init.scope)
stopping_end=$(journalctl -b -1 --since=@$shutdown_start -u "$u" --output=cat --no-pager --output-fields=_SOURCE_REALTIME_TIMESTAMP JOB_TYPE=stop CODE_FUNC=job_emit_done_message _SYSTEMD_UNIT=init.scope)
duration_human=$(systemd-analyze timespan $((stopping_end - stopping_start))us | tail -1 | sed 's/.*: //')
printf "%s\t%10s %s\n" $((stopping_end - stopping_start)) "$duration_human" "$u"
done | sort -rn | cut -f 2
:::
Thanks, I usually know what it is tho. Most often it's VMs I was using for testing stuff, which I forgot to shutdown. It takes a while for them to cleanly shutdown, which is what the wait is for. I have a shortcut on my desktop to a script that checks for any running VMs still and shuts them down. But I forget to click it sometimes and then I have to wait. No big deal, except I like to switch off the power bar that powers the computer and everything attached to it. An old habit from when such a thing mattered, these days standby power is probably nothing to worry about. But still I wait patiently for the computer to shut down till I switch off the power strip.
If your script somehow shuts them down faster than plain old SIGTERM, putting it under /usr/lib/systemd/system-shutdown/ might be a good idea. Check man 8 systemd-shutdown for more info on that.
@lemmy.world
Hint: :q!
Community rules (click to expand)
sudo in Windows.We all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
go to feed...
@lemmy.world
Hint: :q!
Community rules (click to expand)
sudo in Windows.We all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
go to feed...
save