How to Run a Shell Script At Startup

How to run a shell script at startup

The file you put in /etc/init.d/ have to be set to executable with:

chmod +x /etc/init.d/start_my_app

As pointed out by @meetamit, if it still does not run you might have to create a symbolic link to the file in /etc/rc.d/

ln -s /etc/init.d/start_my_app /etc/rc.d/

Please note that on the latest versions of Debian, this will not work as your script will have to be LSB compliant (provide at least the following actions: start, stop, restart, force-reload, and status):

As a note, you should always use the absolute path to files in your scripts instead of the relative one, it may solve unexpected issues:


Finally, make sure that you included the shebang on top of the file:


Run Bash script as root in startup on ubuntu 18.04

Create the service file as in the template below and add the file in the location /etc/systemd/system/

And the Template as

Description = ~Name of the service~

WorkingDirectory= ~directory of working file~
ExecStart= ~directory~/


Start the service file by the name using

systemctl start servicefile.service

To enable on startup

systemctl enable servicefile.service

To check the status

systemctl status servicefile.service

To stop

systemctl stop servicefile.service

Related Topics

Leave a reply