Adding a hook to shutdown.c & halt (reboot.c) to call a script.
Warner Losh
imp at bsdimp.com
Fri Jul 5 16:04:51 UTC 2013
On Jul 5, 2013, at 7:04 AM, Jilles Tjoelker wrote:
> On Fri, Jul 05, 2013 at 02:52:04PM +0200, Julian H. Stacey wrote:
>> Hi mobile@
>> I need ** my laptop to call a script before shutdown,
>> (perhaps automaticaly too with something like 'test -e ` etc,
>> though perhaps the default should remain with no test)
>
>> I dont see any hooks in man shutdown or halt ?
>> I could hack
>> /usr/src/sbin/shutdown/shutdown.c &
>> /usr/src/sbin/reboot/reboot.c # (source of halt)
>> or does someone have a better idea ?
>
>> FreeBSD has a mass of scripts etc for system start up, but seems light
>> on close down hooks ? I seem to recall on system 5 there were table
>> entries for up & down for lots of things, (though I never got
>> on with 5, not lots of others here either, & am not advocating that route),
>> but is there a better way than adding a hook to system("/some_path"); ?
>
>> BTW ** What I'm calling manually before halt is my
>> http://www.berklix.com/~jhs/bin/.sh/umountusb
>> A combo of umounts of USB sticks/disks with plain dos & ufs + also
>> mdconfig -d & gbde detach for encrypted file system on both hard
>> disk & USB sticks. (When I forget to call it before halt, the
>> laptop hangs on USB.)
>
> shutdown(8) signals init (unless -o is given), which will run
> /etc/rc.shutdown from multi-user mode. The same applies to ctrl+alt+del,
> kernel-controlled overheating shutdown, etc.
>
> reboot(8) and halt(8) do not involve init and do not run any shutdown
> scripts. I think they should be changed to signal init (except reboot
> -q, halt -q) and should not be used until then. However, there are
> apparently some problems with that.
I think so too. fasthalt/fastreboot is what I'd call it, but I've come around to thinking that you're right here. It will be a small hassle for some people to adapt to the new system, but I think it will be worth it.
> The incorrect umount order should perhaps be fixed in the kernel.
Agreed.
Warner
More information about the freebsd-mobile
mailing list