• 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