Linux Debian Run commands at boot in init script

12,551

There's also

/etc/rc.local
that is executed at the end of the boot process.

Share:
12,551
Admin
Author by

Admin

Updated on June 29, 2022

Comments

  • Admin
    Admin almost 2 years

    I'm new to Linux (obviously) and I need to run some commands whenever my Linux server boots without typing them into the console manually.

    I have this file called overpass.conf that runs on boot perfectly:

    description 'Overpass API dispatcher daemon'
    
    env DB_DIR=/var/www/osm/db/
    env EXEC_DIR=/var/www/osm/
    
    start on (local-filesystems and net-device-up)
    stop on runlevel [!2345]
    
    pre-start script
        rm $DB_DIR/osm3s* || true
        rm /dev/shm/osm3s* || true
    end script
    
    exec $EXEC_DIR/bin/dispatcher --osm-base --db-dir=$DB_DIR 
    

    However, I want to also run the following:

    cp -pR "/root/osm-3s_v0.7.4/rules" "/var/www/osm/db/"
    
    nohup /var/www/osm/bin/dispatcher --areas --db-dir="/var/www/osm/db/" & 
    
    chmod 666 "/var/www/osm/db/osm3s_v0.7.4_areas"
    
    nohup /var/www/osm/bin/rules_loop.sh "/var/www/osm/db/" &
    

    I have tried adding them to the bottom of the file, adding exec to the execution commands and even tried removing the quotes, then testing with start overpass but it throws errors if I add any commands to the original ones.

    How can I go about executing those 4 commands after the original ones? I'm a noob in distress. Thanks!

    Edit

    I solved it with these commands:

    vi /etc/init.d/mystartup.sh
    

    -Add commands to the script

    chmod +x /etc/init.d/mystartup.sh    
    update-rc.d mystartup.sh defaults 99