Home » Categories » Multiple Categories

How To Use a Simple Bash Script To Restart Server Programs

To ensure that the most imperative programs remain online as much as possible (even after a server crash or reboot), one can create a simple bash script to check if the program is running, and if it is not, to launch it. By using cron to schedule the script to be executed on a regular basis, we can make sure that program relaunches whenever it goes down.

Bash Script

The first step in this process is to create the script itself. There are a variety of programs such as upstart, supervisor, and monit, that have the capability to start and monitor applications on a virtual private server in a very nuanced way— this bash script will simply provide an on switch. Below is a sample script that starts apache if it finds it off.
nano launch.sh
#!/bin/sh

ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        /etc/init.d/apache2 start > /dev/null
fi
Once you have saved the script, you must give it executable permissions in order to be able to run it:
chmod +x launch.sh
Apache can be replaced with any required application. Should you want to set up the script for a variety of applications, you can create a new script for each one, placing it on its own line in the cron file.

Cron Setup

With the script in hand, we need to set up the schedule on which it will run. The cron utility allows us to schedule at what intervals the script should execute. Start by opening up the cron file:
crontab -e
Cron has a detailed explanation of how the timing system works at the beginning.

Once you know how often you want the script to run, you can write in the corresponding line. The most often that the script can run in cron is every minute. Should you want to set up such a small increment, you can use this template:
* * * * * ~/launch.sh
Every five minutes would be set up like this:
*/5 * * * * ~/launch.sh
Attachments Attachments
There are no attachments for this article.
Related Articles RSS Feed
How To Create Nagios Plugins With Perl On Ubuntu 12.10
Viewed 1151 times since Sat, Jan 4, 2014
The Basics of Using the Sed Stream Editor to Manipulate Text in Linux
Viewed 1195 times since Fri, Dec 27, 2013
How To Install Ruby on Rails on Arch Linux with RVM
Viewed 5495 times since Sun, Dec 29, 2013
How To Configure and Maintain Ghost from the Command Line
Viewed 1151 times since Sun, Dec 29, 2013
How To Install nginx on Ubuntu 12.04 LTS
Viewed 1595 times since Tue, Dec 24, 2013
How To Launch Your Site on a New Ubuntu 12.04 Server with LAMP, SFTP, and DNS
Viewed 1346 times since Thu, Dec 26, 2013
How To Import and Export Databases and Reset a Root Password in MySQL
Viewed 1349 times since Thu, Dec 26, 2013
How To Create Nagios Plugins With Ruby On CentOS 6
Viewed 1204 times since Sat, Jan 4, 2014
How To Protect SSH with fail2ban on Debian 7
Viewed 1503 times since Fri, Dec 27, 2013