How to run script on first boot?

22,554

Solution 1

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.

Solution 2

Simple answer: Stick it in /etc/init.d (symlinked to /etc/rc#.d) & the first thing it does is check for a file's presence: If the file exists the script has already run (so exit). If not, run the script and touch the file.

This also lets you delete the file to force the script to run again later.

Share:
22,554

Related videos on Youtube

Dima
Author by

Dima

Updated on September 17, 2022

Comments

  • Dima
    Dima almost 2 years

    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?

  • Dima
    Dima over 13 years
    I cannot use %post section in a kickstart file because I need it for embedded system: I'm creating an OS image with my application and distributing it. My network configuration is depends on MAC addresses as a result I need to do my first time configuration on the first boot. I'm going to try your solution using chkconfig. Thanks