Linux – How to run script on first boot

bootcentoslinuxrunlevelstart

I need to run some bash script only once on first boot (after OS installation) of my CentOS machine
This script should run before network service start (because this script will change network configuration)
How can I register my script to run before network service start?

Best Answer

If you look at the "chkconfig" line of /etc/init.d/network you'll see that the network has a start priority of "10".

/etc/init.d/yourscript:
#!/bin/bash
#
# yourscript  short description
# 
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac

Then run chkconfig yourscript on to get it to run at boot. The chkconfig yourscript off inside the script should disable it running on any subsequent boots.

Some versions of CentOS/RHEL/Fedora have a "firstboot" program you could try to use, but that seems like a pain.

You sure you can't run your network reconfiguration script inside of a %post in a kickstart? That's what I do.

Related Topic