1 | #!/bin/tcsh |
---|
2 | # |
---|
3 | # chkconfig: - 98 98 |
---|
4 | # description: update sectors 33 & 34 EPICS data to RRD data files |
---|
5 | # |
---|
6 | # processname: epics2rrd |
---|
7 | |
---|
8 | ########### SVN repository information ################### |
---|
9 | # $Date: 2011-01-18 23:24:51 +0000 (Tue, 18 Jan 2011) $ |
---|
10 | # $Author: jemian $ |
---|
11 | # $Revision: 235 $ |
---|
12 | # $HeadURL$ |
---|
13 | # $Id: epics2rrd.csh 235 2011-01-18 23:24:51Z jemian $ |
---|
14 | ########### SVN repository information ################### |
---|
15 | |
---|
16 | if (`uname -n` == "ipnspool3.xor.aps.anl.gov") then |
---|
17 | /bin/echo "Support does not run on this host now" |
---|
18 | exit |
---|
19 | endif |
---|
20 | |
---|
21 | # preferred EPICS paths |
---|
22 | setenv EPICS_BASE /APSshare/epics/base-3.14.11 |
---|
23 | setenv BIN_PATH ${EPICS_BASE}/bin/solaris-x86-v10 |
---|
24 | setenv LD_LIBRARY_PATH ${EPICS_BASE}/lib/solaris-x86-v10 |
---|
25 | # make sure our preferred EPICS paths are visited early |
---|
26 | setenv PATH ${BIN_PATH}:${PATH} |
---|
27 | setenv PATH ${LD_LIBRARY_PATH}:${PATH} |
---|
28 | |
---|
29 | # local install of Matt Newville's EpicsCA (Python binding) for EPICS Channel Access |
---|
30 | setenv EPICS_CA_MAX_ARRAY_BYTES 140000 |
---|
31 | setenv PYTHONPATH ~/lib/lib/python |
---|
32 | setenv PYTHON /usr/local/bin/python |
---|
33 | |
---|
34 | # RRD resources |
---|
35 | setenv RRD_LOGS_BASE_DIR /home/joule/WEB33/www/rrd |
---|
36 | setenv SCRIPT ${RRD_LOGS_BASE_DIR}/epics2rrd.py |
---|
37 | setenv LOGFILE ${RRD_LOGS_BASE_DIR}/epics2rrd.log |
---|
38 | setenv PIDFILE ${RRD_LOGS_BASE_DIR}/epics2rrd.pid |
---|
39 | |
---|
40 | setenv SNAME $0 |
---|
41 | setenv SELECTION $1 |
---|
42 | |
---|
43 | /bin/echo "#${SNAME} ${SELECTION} (enter)=======================================" >>& ${LOGFILE} |
---|
44 | /bin/echo "# date: `date`" >>& ${LOGFILE} |
---|
45 | /bin/echo "# env: `env`" >>& ${LOGFILE} |
---|
46 | /bin/echo "# path: ${PATH}" >>& ${LOGFILE} |
---|
47 | /bin/echo "#${SNAME} <${SELECTION}> +++++++++++++++++++++++++++++++++++++++" >>& ${LOGFILE} |
---|
48 | |
---|
49 | switch (${SELECTION}) |
---|
50 | case "start": |
---|
51 | ${PYTHON} ${SCRIPT} >>& ${LOGFILE} & |
---|
52 | setenv PID $! |
---|
53 | /bin/rm ${PIDFILE} |
---|
54 | /bin/echo ${PID} > ${PIDFILE} |
---|
55 | /bin/echo "# started ${PID}: ${PYTHON} ${SCRIPT}" |
---|
56 | breaksw |
---|
57 | case "stop": |
---|
58 | setenv PID `/bin/cat ${PIDFILE}` |
---|
59 | /bin/ps -p ${PID} > /dev/null |
---|
60 | setenv NOT_EXISTS $? |
---|
61 | if (${NOT_EXISTS}) then |
---|
62 | /bin/echo "# not running ${PID}: ${SCRIPT}" |
---|
63 | else |
---|
64 | kill ${PID} |
---|
65 | /bin/echo "# stopped ${PID}: ${SCRIPT}" |
---|
66 | endif |
---|
67 | breaksw |
---|
68 | case "restart": |
---|
69 | ${SNAME} stop >>& ${LOGFILE} |
---|
70 | ${SNAME} start >>& ${LOGFILE} |
---|
71 | breaksw |
---|
72 | default: |
---|
73 | /bin/echo "Usage: ${SNAME} {start|stop|restart}" |
---|
74 | /bin/echo "Usage: ${SNAME} {start|stop|restart}" >>& ${LOGFILE} & |
---|
75 | breaksw |
---|
76 | endsw |
---|
77 | /bin/echo "#${SNAME} ${SELECTION} (exit)=======================================" >>& ${LOGFILE} |
---|