Introduction
In this article, we will configure our Linux computer to autorun a script on boot. For the purpose of this article, we will be making use of systemd
services.
BTW, I use Arch Linux, so if there’s any difference using a different distro, do not hesitate to leave a comment, please.
What is systemd?
systemd is a suite of basic building blocks for a Linux system. It provides a system and a service manager that runs as PID and starts the rest of the system. systemd provides aggressive parallelization capabilities, uses sockets and D-Bus activation for starting services, keeps track of processes, etc.
You can read more on systemd here.
The main command used to introspect and control systemd is systemctl
.
Steps
-
First, we will create a Bash script in
/usr/local/sbin
, for instance[notifyRemote.sh]
(http://notifyRemote.sh)
, that would notify a remote machine once it’s booted.
-
We will make the file executable by running the command:
sudo chmod +x /usr/local/sbin/notifyRemote.sh
-
Create a Unit file called
startup.service
in/etc/systemd/system/
to define a systemd service. You will need root access (sudo
) to make changes or create these files.
-
We will make the file executable by running the command:
sudo chmod +x /etc/systemd/system/startup.service
-
In
/etc/systemd/system/startup.service
, we would paste the below into the file as such:
[Unit] Description=My Startup [Service] ExecStart=/usr/local/sbin/notifyRemote.sh [Install] WantedBy=multi.user.target
-
The ExecStart is the most important key here because it points to the Bash program that will run when the service is started.
-
We can test the service by running
sudo systemctl start startup.service
to confirm that the script will run.
-
Now to enable services to run on boot, we will run the command:
sudo systemctl enable startup.service
Conclusion
Now, we should successfully create a script that runs automatically anytime we start our Linux machine.
You can consult the systemd man page for more information.
I hope you find this helpful. Please leave a like, comment, and share if you found this helpful, and also you can consider buying me a coffee too.
Also published here: https://blog.zt4ff.dev/running-scripts-on-boot-in-linux-using-systemd