How do I make a script run upon startup of the Ubuntu machine?
Solution 1
Simple way
You can add this script into /etc/rc.local
file (before exit
line), e.g.
/home/myuser/go.py &
Where &
at the end will run the script in the background.
Make sure that you've execution flags. To test it, simple run from the terminal:
sh /etc/rc.local
Solution 2
There are many ways to do this (depending on which distribution of linux you are using there are different tools that are offered).
The easiest way is simply adding the script to /etc/init.d and then running the command
chmod +x go.py
update-rc.d go.py defaults
If you already set up the service, you may also do so via the chkconfig command (that is if the command is available).
In that case, this command should work:
chkconfig --level 35 go.py on
Check out THIS WEBSITE, more specifically the "Using chkconfig to Start Daemons at Each runlevel" and "Using sysv-rc-conf to Start Daemons at Each runlevel" sections.
Solution 3
You can put a script in the /etc/init.d/
directory (eg: /etc/init.d/go.py
) for anything you want to run at bootup time.
http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian
Solution 4
cron has a special @reboot
option that allows for this. Nice and simple.
A normal cron task might be:
* * * * * /path/to/app
A @reboot
cron task might be:
@reboot /path/to/app
Related videos on Youtube
Alex
Updated on September 17, 2022Comments
-
Alex over 1 year
I want to run /home/myuser/go.py
How do I make that run in the background, everytime my linux machine boots up?
-
Admin almost 14 yearsgeneral what-happens-on-ubuntu-startup here: superuser.com/questions/151330/ubuntu-control-the-init-startup ... this might be "close enough" to consider a duplicate.
-
-
Dirk Eddelbuettel almost 14 yearsI prefer
/etc/rc.local
as you do not need to change the run-level links. -
Steve Homer almost 14 yearsPerhaps you should add this as a separate answer so it can be voted up?