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:
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 theRequired-Start
parameter setting when it should happen. -
/etc/init.d/cron
is a simple starting point for a daemon process (give or take theparse_environment
function, which you probably don't need).
Related videos on Youtube
Simon Todd
Updated on September 18, 2022Comments
-
Simon Todd over 1 year
I just want to run a very simple command on startup. How can I do that? I've searched google and it has very complicated examples, but what I need is just run this script on startup. How can I do that?
Script
./init.d/opscenter-agent start
-
Simon Todd almost 12 yearsNot good since I'm using Putty in order to manage Debian server, no GUI :)
-
desgua almost 12 yearsYou can put the commands (or a link to your script) in this file:
/etc/rc.local
-
mc0e almost 9 yearsThe OP specifically asked for an init.d script, which this is really not. It's a related approach, mostly by virtue of it's being the way we did things 30 odd years ago, and more or less never do now thanks to newer approaches like init.d. (which is in turn being deprecated in favour of systemd's /etc/init).
-
mc0e almost 9 yearsThis is an alternative to the init.d script the OP asked for.