We will setup a simple systemd service to automatically run a bash script on system boot.
Create systemd file
Create the service file with
vi /etc/systemd/system/multi-user.target.wants/bashscript.service
Now fill out the file. Change the Description and ExecStart. After= means only start this unit after the other units have finished. This is needed if we need to make a network connection. If our script runs before the network is up, the connection will fail.
[Unit] Description=systemd Unit File to Launch Bash Script on System Boot After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] ExecStart=/home/user/script.sh
Change the ExecStart to your bash script and save the file
Enable systemd file
Now that the file is created, we need to enable the service so it starts on system boot
systemctl enable bashscript.service
You should get the following output.
Created symlink /etc/systemd/system/multi-user.target.wants/bash.service → /etc/systemd/system/bash.service.
Now to test, reboot your system, or start the service with
systemctl start bashscript.service