Table of Contents
In this article, I will show you how to make the bash script run as a service on CentOS 7 (versions 7.x). Although CentOS 6.x is still supported by 2021 (I remember that). But the use of CentOS 7.x is getting more and more. So, I hope this article will help those who are working with CentOS 7.
Write your bash script
Please read the article “Make bash script run as service in CentOS 6” that I wrote earlier because I will reuse the content in the script in that article for this section.
You can download the script here.
The content of the script is actually quite simple, its main feature is to get information about the server load. You can see it as a program to monitor average load.
Make bash script run as a service
The next step is to initialize the init file for our new service. The difference in this step is that CentOS 7 does not use init files anymore, but rather uses systemd.
Create a service file
You create a new file with the path is /etc/systemd/system/getload.service and copy the content below into the file.
[Unit]
Description=Getload service - WriteBash demo service in CentOS 7.x
After=network.target
[Service]
Type=simple
PIDFile=/var/run/getload.pid
ExecStart=/bin/sh -c "/opt/getload.sh >>/var/log/getload.log 2>&1"
TimeoutStartSec=0
Restart=on-failure
[Install]
WantedBy=default.targetAbove, you can edit the following information to match the service you want to create:
- Description: describe your program.
- PIDFile: the path to the PID file you want.
- ExecStart: the command to execute the program, here we call the main script mentioned above the article.
If you want to learn more about how to create a service file, you can read more on this link.
Create logrotate file for service
And similar to the main script for the program at the beginning of this article, you can read more at the article I wrote above.
This part, for every program, needs a rotate log. So, do not ignore it because at some point your program will not be able to work because it is full of logs.
Check the result
Here you can use the systemctl command to enable the program after reboot, start or stop your service.
To enable your service after reboot, you run the command:
systemctl enable getloadTo start/stop/check status of your service, run command below:
systemctl [start|stop|status] getloadAnd you can see the results in the image below.

If you look at the results in my article on CentOS 6, you will find it a bit different from the image above.
Conclusion
With just a few simple steps, you were able to make a bash script run as a service on CentOS 7. What are you waiting for? Write your own programs right away. Hope my article is useful for you and you also like it.
(This is an article from my old blog that has been inactive for a long time, I don’t want to throw it away so I will keep it and hope it helps someone).