Make bash script run as a service in CentOS 7

by Daniel Pham
Published: Updated:

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.target

Above, 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 getload

To start/stop/check status of your service, run command below:

systemctl [start|stop|status] getload

And you can see the results in the image below.

Make bash script run as a service in CentOS 7
Check getload service running in CentOS 7

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).

0 0 votes
Article Rating

You may also like

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

DevOps Lite is a personal blog specializing in technology with main topics about DevOps, DevSecOps, SRE and System Administrator. Articles are shared for free and contributed to the community.

SUPPORT US

FOLLOW US

Subscribe my Newsletter for new blog posts. Stay updated from your inbox!

© 2021-2024 DevOpsLite.com – All rights reserved.

Please write sources “DevOpsLite.com” when using articles from this website.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

0
Would love your thoughts, please comment.x
()
x

Adblock Detected

Please support us by disabling your AdBlocker extension from your browsers for our website.