How to create init.d startup script

Solution 1:

If you want to do this as system startup (as opposed to when you log in to your computer), put the commands you want to run in /etc/rc.local.

See [Ubuntu] Executing a script at startup and shutdown.

Solution 2:

If the script does not need to be run by root, you can do this:

1) Open "Startup Applications Preferences" (Alt + F2 and paste gnome-session-properties and hit Enter),

2) Press "Add" and select your script:

enter image description here

enter image description here


If you are not using a graphical environment, you can put the commands just before the line exit 0 in this file: /etc/rc.local. (To edit it just paste at terminal sudo nano /etc/rc.local.

Solution 3:

The /etc/rc.local approach will 'run a very simple command at startup', but it is not an init.d script approach, and is in various ways inferior. (That may not matter, depending on your purpose).

Unlike init.d scripts, rc.local comands don't offer a standard interface to starting and stopping a process, and they don't offer much ability to influence when in the startup process they are run. You can see in the /etc/init.d/rc.local script that this is run after everything else (Required-Start: $all).

If an init.d script really is what you want, then usually just grabbing an existing script, copying it and editing it works fine, though some of the existing scripts have more complexity than you want. Since that's how most init.d scripts start, ubuntu provides /etc/init.d/skeleton for this purpose.

Also worth a look:

  • /etc/init.d/motd is a minimal example that runs something at startup, but with the Required-Start parameter setting when it should happen.
  • /etc/init.d/cron is a simple starting point for a daemon process (give or take the parse_environment function, which you probably don't need).