Zmieniłem distro (ba, już dawno, ok. 2 miesiące temu… nie wspomniałem?) na Debiana… Ale tu nie o tym.
Mini how-to opisujące, jak uruchomić jakiś program podczas zamykania (ew. podczas reboot’u) systemu.
Otóż pojawiła się potrzeba zrobienia właśnie czegoś takiego i udało mi się wykombinować:
cd /etc/init.d
su
…
nano halt
Przechodzisz do katalogu /etc/init.d, następnie logujesz się na root’a. Wybierając swój ulubiony edytor (wybrałem nano - prosty, mały, szybki
) edytujesz plik halt.
Pomiędzy
. /lib/lsb/init-functions
do_stop () {
a przed
if [ "$INIT_HALT" = "" ]
Naciśnij TAB, aby zrobić odstęp i wpisz:
modprobe apm
Oczywiście, to tylko przykładowy program, możesz użyć tutaj cokolwiek 
Zapisz plik.
Jeśli potrzebujesz wykonywania programu przy reboocie (np. załadowania modułu - j.w), to w tym samym katalogu masz plik reboot. Otwórz go edytorem i wyedytuj, żeby wyglądał mniej więcej tak:
do_stop () {
/sbin/modprobe apm
# Message should end with a newline since kFreeBSD may
# print more stuff (see #323749)
log_action_msg “Will now restart”
reboot -d -f -i
}
[... _TU DALSZA CZĘŚĆ PLIKU_ ... ]
Zapisz, spróbuj wyłączyć/rebootować system - jeśli program się wykonał - fajnie, jeśli nie - pisz, coś wykombinujemy
P.S: Taki sam skutek można odnieść edytując /etc/rcZ.d/YXXhalt - gdzie Z to cyfra (level init’a na którym chcesz to zrobić), Y to S lub K (patrz manual - man init), a XX to liczby opowiadające opóźnieniu w uruchamianiu.