• Thorry@feddit.org
      link
      fedilink
      arrow-up
      0
      ·
      12 days ago

      Well you say that, but I’ve seen the countdown go past and then reset to a higher number often.

      • TwilightKiddy@scribe.disroot.org
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        12 days ago

        I entrust you with this horror, go figure out what to blame.

        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