Discussion:
How to check if not clean shutdown?
(too old to reply)
Johannes Lundberg
2018-05-22 13:57:11 UTC
Permalink
Hi

In the boot process on my test machines I'd like to do different things
depending on the last run was a clean shutdown or kernel panic. Where/How
can I get this information?

Thanks!
Warner Losh
2018-05-22 14:30:32 UTC
Permalink
You can't, in general. By the time the boot loader starts, all knowledge of
past boots is gone, unless specific counter-measures were put in place.

However, if root is UFS and read/write in your box, it will be unclean on
anything but a clean shutdown/reboot. If it's read-only, ZFS or NFS
mounted, then you can't use this method.

If you have UEFI, you can set a UEFI variable on shutdown and clear it on
boot. If it's not there on boot, you had an unclean shutdown. You could do
the same with a file in a r/w filesystem that doesn't record clean/unclean
(like ZFS or NFS).

Locally, we have hacks to IPMI to record kernel crashes in the IPMI log,
but that's kinda specific to the BMC we have on our boards...

Warner
Post by Johannes Lundberg
Hi
In the boot process on my test machines I'd like to do different things
depending on the last run was a clean shutdown or kernel panic. Where/How
can I get this information?
Thanks!
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
Johannes Lundberg
2018-05-22 14:35:37 UTC
Permalink
Post by Warner Losh
You can't, in general. By the time the boot loader starts, all knowledge
of past boots is gone, unless specific counter-measures were put in place.
However, if root is UFS and read/write in your box, it will be unclean on
anything but a clean shutdown/reboot. If it's read-only, ZFS or NFS
mounted, then you can't use this method.
If you have UEFI, you can set a UEFI variable on shutdown and clear it on
boot. If it's not there on boot, you had an unclean shutdown. You could do
the same with a file in a r/w filesystem that doesn't record clean/unclean
(like ZFS or NFS).
Locally, we have hacks to IPMI to record kernel crashes in the IPMI log,
but that's kinda specific to the BMC we have on our boards...
Warner
I see. Thanks for the quick reply.
I guess I can add a dummy file somewhere that I delete in a shutdown hook.
Post by Warner Losh
Post by Johannes Lundberg
Hi
In the boot process on my test machines I'd like to do different things
depending on the last run was a clean shutdown or kernel panic. Where/How
can I get this information?
Thanks!
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
"
Rodney W. Grimes
2018-05-22 14:48:09 UTC
Permalink
Post by Johannes Lundberg
Post by Warner Losh
You can't, in general. By the time the boot loader starts, all knowledge
of past boots is gone, unless specific counter-measures were put in place.
However, if root is UFS and read/write in your box, it will be unclean on
anything but a clean shutdown/reboot. If it's read-only, ZFS or NFS
mounted, then you can't use this method.
If you have UEFI, you can set a UEFI variable on shutdown and clear it on
boot. If it's not there on boot, you had an unclean shutdown. You could do
the same with a file in a r/w filesystem that doesn't record clean/unclean
(like ZFS or NFS).
Locally, we have hacks to IPMI to record kernel crashes in the IPMI log,
but that's kinda specific to the BMC we have on our boards...
Warner
I see. Thanks for the quick reply.
I guess I can add a dummy file somewhere that I delete in a shutdown hook.
utmp has one attempt at keeping track of this by recording a shutdown record.
Post by Johannes Lundberg
Post by Warner Losh
Post by Johannes Lundberg
Hi
In the boot process on my test machines I'd like to do different things
depending on the last run was a clean shutdown or kernel panic. Where/How
can I get this information?
Thanks!
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
"
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
--
Rod Grimes ***@freebsd.org
Loading...