Thanks for the replies!
Here is a follow up, since I got it working on Fedora. I had to do something similar to the method in Ubuntu, but it works, and that's all that matters.
I used your advice about the SysV style of handling startup/shutdown. The only thing I had to do differently was use S instead of K. When I gave it default "stop" values (K), it was ignored when I shut down. I guess this is because it's not an actual service, so it was never really "running." This is just a script that executes my custom commands before shutdown/reboot. So I have it "start" before everything else on shutdown.
Here is what I did, with some insight from your posts.
I created the file and saved it as /etc/init.d/custom-halt, and made it executable.
I then did chkconfig --add custom-halt, which created sym-links in rc0.d and rc6.d, since I made those the "Default-Start" for this script, and it named them as S00custom-halt inside those two directories.
This is what it looks like inside the custom-halt file.
Code:
#! /bin/sh
# chkconfig: - 00 00
# description: Do custom commands before shutdown or reboot
### BEGIN INIT INFO
# Provides: custom-halt
# Required-Start:
# Required-Stop:
# Default-Start: 0 6
# Default-Stop:
# Short-Description: Custom halt commands
# Description: Do custom commands before shutdown or reboot
### END INIT INFO
command 1
command 2
command 3
command 4
exit
I used other services under /etc/init.d/ as an idea of what format I should follow. The two most important parts are the lines # chkconfig - 00 00 and # Default-Start: 0 6. I chose 00 (for S00) because I want it to execute before anything else when the system halts.
It ain't no halt.local, but it does its job!