hi,
A while ago someone was asking about monitoring zope. This is a simple
python script I use to keep an eye on the server.
It's run in cron, every so often it fetches the last known zope PID, and
makes sure zope is still running on it. If it's not, it runs the Zope
startup script.
I'll eventual improve upon it so it mails me a note and makes a log so I
know if zope starts to bail quite a bit.
j.
..
. Jason C. Leach
... University College of the Cariboo.
..
#!/usr/local/bin/python
#
# Simple Zope monitoring script.
# Jason C. Leach. Canada.
#
import string, os
def ScanLines(token, command):
#print 'in ScanLines'
Status = 0
# fetch data
Lines = PipeInput(command)
# cycle through the input
for line in Lines:
# if a line contains the 'daemons' name, just exit gracefully.
Status = string.find(line, token)
#print Status
#print line
# should exit
if Status = 0:
Status = 1
break
else:
Status = 0
#print 'done ScanLines'
return Status
def PipeInput(command):
# check to make sure the disks are not to full.
#print 'int PipeInput'
# variable decleration
Lines = []
# open pipe to os command
pipe = os.popen(command, 'r')
# fetch input
Lines = pipe.readlines()
# close the pipe
pipe.close()
return Lines
def GetPid(FILE):
fin = open(FILE, 'r')
pid = fin.readline()
fin.close()
return pid
if __name__ == '__main__':
TOKEN = 'Zope'
ZOPEPID = '/usr/local/www/Zope/var/zProcessManager.pid'
CMD = 'ps -p ' + GetPid(ZOPEPID) + ' | grep Zope'
SCRIPT = ' /usr/local/etc/rc.d/zope.sh start'
Status = ScanLines(TOKEN, CMD)
if not Status:
os.system(SCRIPT)
#return 1