Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Jul 2013 15:04:53 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        "Julian H. Stacey" <jhs@berklix.com>
Cc:        freebsd-mobile@freebsd.org
Subject:   Re: Adding a hook to shutdown.c & halt (reboot.c) to call a script.
Message-ID:  <20130705130452.GB13495@stack.nl>
In-Reply-To: <201307051252.r65Cq46b046582@fire.js.berklix.net>
References:  <201307051252.r65Cq46b046582@fire.js.berklix.net>

next in thread | previous in thread | raw e-mail | index | archive | help

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.

The incorrect umount order should perhaps be fixed in the kernel.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130705130452.GB13495>