👤
Home Man
Search
Today's Posts
Register

Helpful articles from our Users.

My "Bread and Butter" Process Keep Alive Perl Script....

Tags
keep alive

👤 Login to reply

 
Thread Tools Search this Thread
# 1  
Old 01-08-2005
My "Bread and Butter" Process Keep Alive Perl Script....

For the newbies, I should have posted this years ago....

Here is the standard (tiny) "bread and butter" perl script (on Linux) I use in my crontab files to insure key processes are alive ( just in case ! ) like httpd, named, sshd, etc.

The example below if for named......

Code:
#!/usr/bin/perl

open(PS,"/bin/ps x|") || die "Can't Open PS";
while(<PS>) {
if (/usr\/sbin\/named/) { close PS; exit;}
}
close PS;
system("/usr/sbin/named");

One of my biggest "server fears" is that named will die for some strange reason, so I feel safe knowing that named is always running with the script above.

New Linux/UNIX users might find it useful.
# 2  
Old 01-13-2014
Now the haute cuisine:
a shell daemon that polls /proc every 30 seconds:
Code:
#!/bin/bash

# name of the daemon to watch
pname=named
pstart=/usr/sbin/$pname

# this script
me=${0##*/}
# e.g. me=named_watcher.sh

export PATH=/bin:/usr/bin:/usr/sbin:/sbin

# sh sends SIGHUP on exit, we need to continue
trap 'echo "SIGHUP captured"' HUP

# no interactions, log all output and errors
mkdir -p /var/log
exec </dev/null >/var/log/${me%.*}.log 2>&1

# Solaris needs -z option
zopt=`{ zonename; } 2>/dev/null`
zopt=${zopt:+"-z $zopt"}

echo "$me started with pid $$"
sleep 3
# initiate the pid variables
pid=`pgrep $zopt -x $pname`
[ -n "$pid" ] || exec echo "no $pname process - exiting"
echo "$me watching $pname[$pid]"

# endless loop
while :
do
 sleep 30
 if [ \! -d /proc/$pid ]; then
  echo "`date` $me $pid is gone!"
  sleep 1
  echo "starting $pname"
  date
  eval $pstart
  sleep 3
  # renew the pid variables
  pid=`pgrep $zopt -x $pname`
  [ -n "$pid" ] || exec echo "no $pname process - exiting"
  echo "$me watching $pname[$pid]"
 fi
done

The script should be background-started (with &) in the start section of the process (here: named) init script, *after* the process is started.
And killed in the stop section of the process start script, *before* the process is killed.

Last edited by MadeInGermany; 01-13-2014 at 02:46 PM..
👤 Login to reply

« Previous Thread | Next Thread »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Using "mailx" command to read "to" and "cc" email addreses from input file asjaiswal UNIX for Dummies Questions & Answers 2 10-11-2014 09:32 PM
awk command to replace ";" with "|" and ""|" at diferent places in line of file shis100 Shell Programming and Scripting 7 03-16-2011 08:59 AM
Send "perl -e '...' " command through SSH, from a perl script clrg Shell Programming and Scripting 2 07-14-2010 01:00 PM
Ksh script function, how to "EXIT 2" without killing the current process? troym72 Shell Programming and Scripting 2 10-08-2009 04:32 PM
"service" , "process" and " daemon" ? shipon_97 Red Hat 1 05-24-2009 03:51 PM
Shell script process remains after "exit 1" Squeakygoose Shell Programming and Scripting 4 10-21-2008 11:17 AM
Startup Script "run process with Timer" zawmn83 Shell Programming and Scripting 0 08-21-2008 09:57 AM
How to include RETURN KEY with Background process "&" in Shell Script racbern Shell Programming and Scripting 1 03-11-2008 07:30 AM
Pid still alive after "control C" Nicol Shell Programming and Scripting 4 05-11-2005 11:15 AM


All times are GMT -4. The time now is 06:04 PM.

Unix & Linux Forums Content Copyright©1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password